Ruby on Rails のスレ ..
[2ch|▼Menu]
86:nobodyさん
08/05/04 22:58:45
link_to 'Delete', :action=>'destroy', :id=>@item
とかすると、HTML で JS が吐かれてその中に
s.setAttribute(¥'value¥', ¥'572726412773a720dcb04dc130a863f944b4082b¥');
のような、セッションID? のようなのが埋め込まれてますが、この値を自分で取り出すにはどうしたらいいですか。
session_id とか transaction_id みたいなAPIを探してみたんですが、ないみたいです。

87:nobodyさん
08/05/04 23:01:14
>>86
paramsの中見てみな

88:nobodyさん
08/05/04 23:42:38
>>87
{"action"=>"index", "controller"=>"items"}
という内容でした。


89:nobodyさん
08/05/05 00:38:10
protect_from_forgeryのやつじゃないの?


90:nobodyさん
08/05/05 01:23:19
>>88
中に
:session_key => '_session_id'のような事かいてないか?
:session_id => 'safdaeuaihfoa;n'
みたいな・・・

params[:session]
でダメならセッションが効いてないのかもしれん・・・

91:nobodyさん
08/05/07 00:30:28 Fjgg9vWs
86ではないけど、俺も同じようなとこで悩んでる。
とある理由で、authenticity_tokenの値とセッションの値(CookieStoreのあの長い文字列)を
ビューで取得したいんだが、なにかAPIみたいなものはないのかなぁ。
リクエストから取得すればいいじゃんって言われるかもしれないんだけど、それじゃ
だめなんすよね。。

92:91
08/05/07 00:44:52 Fjgg9vWs
authenticity_tokenはわかった。

<%= form_authenticity_token %>

93:nobodyさん
08/05/07 00:46:04
>>91
authenticity_tokenのほうは、
名前は request_forgery_protection_token シンボルなので必要ならto_s
値は form_authenticity_token

94:nobodyさん
08/05/07 00:47:27
>>91-92
ナイス解決

こういう情報共有みたいなのあるのは良いよな!

95:nobodyさん
08/05/07 00:58:10
セッションを保持しているクッキーの名前はconfig/environment.rb
に書いてあるはず。

config.action_controller.session = {
:session_key => '_test_session',
:
:

<%=debug(cookies['_test_session']) %>

中を見る方法は action_controller/session/cookie_store.rbのunmarshalの定義を参照。


96:91
08/05/07 02:13:07 Fjgg9vWs
みなさんいろいろ情報どうもです。
結局セッションの値っつーか、CookieStoreの長い文字列は
JavaScriptでhiddenに埋め込むようにしたんだが、ここでへこむ事態発生。
CookieStoreの値をhiddenで送っても、Railsは認識してくれないくさい。
これからソース追ってみるけど、たぶんCookieからしか見てないと思われる。
CookieStore使う方は注意してください。

間違いであれば指摘してくれ。

97:nobodyさん
08/05/07 03:00:02
クッキーなんだから、フォームの一部として送るまでもなく、
ブラウザがHTTPヘッダに入れてくれ……ないの?


98:91
08/05/07 03:11:52 Fjgg9vWs
>>97
あれなんすよ、FLASHからPOSTしたいんすよ。で、セッションも維持したい。
どうもIE以外のブラウザからFLASHでPOSTするとCookieをうまく送信してくれなくて。

99:nobodyさん
08/05/07 17:50:37
create_table :organizations do |t|
t.string :name, :null=>false, :unique=>true
t.integer :parent_id # 親organizationを指すID
t.timestamps
end

とあったときに、t.integer :parent_id を t.references を使って書くとどう書きますか。
マニュアルだとわかりませんでした。
URLリンク(api.rubyonrails.org)


100:nobodyさん
08/05/07 17:55:40
t.references :parent

101:nobodyさん
08/05/07 18:29:22
>>100
t.referencesではカラム名は指定するけど参照先は指定できないってことですか?

102:nobodyさん
08/05/07 18:42:57
矢次に質問をするでない。それはmodelで設定せよ。

103:nobodyさん
08/05/07 19:48:24
連続して質問したらだめなの?心狭いなあ。でも助けてくれてありがとう。

104:nobodyさん
08/05/08 03:00:26
最近思ったんだがFastCGIって結構やればできる子かもしれん・・・

105:nobodyさん
08/05/08 10:27:39
>>104
FastCGIは、Rails以外ならmod_rubyよりずっと出来る子だけど、Railsでの評判は芳しくない。なぜ?


それはそうと、Employeeってモデルで、社員番号をカラムとして持つ場合、これはEmployee#idからauto_incrementを外して使ったほうがいい?
それともEmployee#idはそのままに、別個にemployee_numberとかして持った方がいいのかな。
このへんよくわからんのでアドバイスちょーだい!

106:nobodyさん
08/05/08 10:44:45
>105
別個に持ってindexはる

107:nobodyさん
08/05/08 11:55:19
>>106
レスさんくす。indexはるってのは、:unique=>trueとかつけると自動的に張られるもん?
聞いてばっかですまん。

108:nobodyさん
08/05/08 12:28:02
add_index。api documentみれ

109:nobodyさん
08/05/08 12:28:54
>>107

add_indexしてください。

110:nobodyさん
08/05/08 12:28:56
will_paginateが非効率なSQL発行してしまうらしいのですが、
現在修正されているのでしょうか?
修正される見込みはあるのでしょうか?

paginating_findを使っておいた方が無難でしょうか?

111:nobodyさん
08/05/08 12:46:18
もまいで調べて報告しる!

112:110
08/05/08 14:05:01
はい >> 111

簡単そうだったので、ちょっと試してみました。

Parameters: {"action"=>"index", "per_page"=>"10", "controller"=>"products", "page"=>"2"}
Product Load (0.001225) SELECT * FROM `products` WHERE (name LIKE '%%' OR description LIKE '%%') LIMIT 10, 10
Product Columns (0.001095) SHOW FIELDS FROM `products`
SQL (0.006903) SELECT count(*) AS count_all FROM `products` WHERE (name LIKE '%%' OR description LIKE '%%')

無駄なことはやっていないようにみえます。

113:nobodyさん
08/05/08 16:07:08
両方のクエリを見比べないと意味ないじゃん
あとクエリに違いが出るのってjoinした時じゃなかったかな
少なくともシンプルなクエリじゃどっちでも変わらんよ多分

114:110
08/05/08 16:56:17
なるほど・・・
すみません、勘違いしておりました。
will_paginateだと、確かにrelationの先にpaginateかけると、
全selectしてます。


115:nobodyさん
08/05/08 18:43:11
Emacsのrailsモードって使っている人いる?

たとえば foo_controller.rb の FooControler#show() にカーソルがある場合、
view/foo/show.html.erb をひらくのに便利なコマンドとかある?
C-c f v だと "foo/show<TAB>" を入力しなきゃいけなくて面倒です。

116:nobodyさん
08/05/09 01:13:57
>>115
C-c ↑ のことかな?
C-c C-p でもできるようにキーバインディングを変えてます。

117:nobodyさん
08/05/09 12:59:17
>>116
ちょーさんくす
あいしてるよ

118:116
08/05/09 13:39:24
キーバインディング変更はこんな感じで

(define-key rails-minor-mode-map "\C-c\C-p" 'rails-lib:run-primary-switch)

あとは、Rail2.0でファイル拡張子に.html.erbを使うようになったのに対応して
rails.elの中でこんな設定をしておくとよい

(defvar rails-templates-list '("html.erb" "erb" "rhtml" "rxml" "rjs" "haml" "liquid"))


119:nobodyさん
08/05/09 14:47:55
Railsで
select a.id, a.name, o.name
from accounts a, organizations o
where a.organization_id = o.id
order by o.name;
というSQLを発行するにはどうしたらいいですか。
Account.find(:all, :include[:organization])
でOK?


120:nobodyさん
08/05/09 14:49:41
>>119
find_by_sql

変数取り込むならちゃんとエスケープしてからやれよ?

121:nobodyさん
08/05/09 21:14:37
>>120
さんくす

> 変数取り込むならちゃんとエスケープしてからやれよ?
こういう心遣いができるおまえは優秀なエスパー
これからも地球の平和を守ってくれ


122:nobodyさん
08/05/09 22:30:39
>>121
今SQLインジェクションアタックが盛んだからじゃね?
URLリンク(www.tokumaru.org)

普通は
:conditions => ['hoge = ?' , params[:hoge]]
のようにすればいいけど、

フルSQLとかに変数使いたい時は
Hoge.find_by_sql("select * from hoges where hoge = #{connection.quote(params)}")
がオヌヌメ

URLリンク(pirochin.blogspot.com)

123:nobodyさん
08/05/10 01:12:35
sanitize_sql(["select * from hoges where hoge = ?", params[:hoge]])

124:nobodyさん
08/05/10 01:35:58
redmineを URLリンク(www.example.com) で動かすことには成功しました。
URLリンク(www.example.com) で動かしたい場合には
httpd.confをどのようにすればよいのでしょうか

DocumentRoot /usr/local/apache2/htdocs
RailsBaseURI /~foo/redmine
とすると
Passenger error #2
Passenger thought that the Rails application's "public" directory is "/usr/local/apache2/htdocs/~foo/redmine".
となり、必ずDocumentRoot配下を見るようになってしまいます。

125:nobodyさん
08/05/10 01:50:18
情報足りないですねorz
Linux上でApache2.2.8+mod_rails(passenger-1.0.5)です。

126:nobodyさん
08/05/10 01:55:26 NOkob+Vn
>>125
おぉ!mod_railsの情報か!!

ほとんどhttpd.confに書くんだっけ?
app/controller/foo/
app/views/foo/

って内部にサブディレクトリ切るんじゃダメだろうなぁ・・・

127:nobodyさん
08/05/10 01:55:53
~を使えるのはUserDirそれ自体のみじゃないかな。
/~foo を本来のファイルシステム上の絶対パスで書いたらどうよ?


128:124
08/05/10 02:10:09
>>126
Apache上でRuby on Railsアプリケーションを動かす/Passenger(mod_rails for Apache)の利用
URLリンク(redmine.jp)
の通りにやるとサクッと動きました。

>>127
RailsBaseURI /home/foo/public_html/redmine と書いて ~foo/redmineにアクセスすると
Apacheがrailsを認識してくれず、普通のindexリスト表示になってしまいます。


129:nobodyさん
08/05/10 23:24:32
URLが~foo/でなきゃいかん理由って何よ?
~fooの絶対パスを/foo に Alias して
URLリンク(example.com)
じゃだめなん?


130:nobodyさん
08/05/12 12:32:39 MkPAtgFM
無料レンタルサーバーでRails使えるところあったら教えてください。

131:nobodyさん
08/05/12 19:17:18
>>130
ないと思います。GoogleAppEngineでサポートされることを祈っておいてください。

質問なんだけど、migrationで、add_columnするときに、:null=>falseを指定できますか。
データが1行もないときはできると思うけど、すでにデータが入っているテーブルに:null=>falseつきでadd_columnしたいんです。
あるいはadd_columnしたあとにfind(:all).each でデータを設定してから、:null=>falseを追加するとか。

132:nobodyさん
08/05/12 19:40:44
>>131
change_column という大変便利なものをみつけてしまいました。
add_column :items, :newcolumn, :string
Items.find(:all).each {|item| item.newcolumn = '...'; item.save! }
change_column, :items, :newcolumn, :string, :null=>false
でいけました。

133:nobodyさん
08/05/13 10:33:55
>>132
> Items.find(:all).each {|item| item.newcolumn = '...'; item.save! }
なんとなく、めちゃくちゃ効率悪そうな気がするのは俺だけ?

134:nobodyさん
08/05/13 11:06:43
データが数十万件とかあったら泣けるなw

:default => false 指定するのじゃダメだろうか?
カラム追加なら最初はデータ無いだろうし、
必要なデータは後でバッチかupdate文で更新するみたいな。

最悪、execute('alter add_column文')で無理やり書くとか。

結果出てるのに茶々入れてすまん

135:nobodyさん
08/05/14 10:42:18 4b0MQpYR
>>130
InfoQ: HerokuとMorph AppSpaces:Railsホスティングの新しい二つのソリューション
URLリンク(www.infoq.com)

136:nobodyさん
08/05/14 21:53:25 ToATEiN6
過疎ってるなage

137:nobodyさん
08/05/16 12:30:03
rspecを始めたばかりのものです。
テスト結果が大量にある時にどこでエラーが起きたか、コンソール表示だけだと
わかりにくいんですが、見やすく整形してくれるツールのようなものは
ありますか?

Story Runnerも試していて、プレゼンみてると
URLリンク(blog.davidchelimsky.net)
の38ページ(Spec Framework)にそれっぽいものが出ていて使ってみたいんですが
リリースされているんでしょうか?

138:nobodyさん
08/05/16 14:26:01
>>137
それはRspecとか関係なく、MacのGrowlじゃなかろうか
URLリンク(blog.tkmr.org)

さぁ今すぐMacを買いに行くんだ

UTF-8 コードのRailsアプリはWinで開発よりMacの方がいいよなぁ・・・

139:nobodyさん
08/05/17 00:27:54
そのプレゼンに載ってるのは、エディタTextMateの
RSpecバンドルの機能ですね。

とりあえず標準の範囲なら、spec/spec.optsで
--format specdoc
--backgtrace
と書くとか。


140:nobodyさん
08/05/17 00:28:14
backtraceですた


141:nobodyさん
08/05/17 15:18:33
うちも会社の開発環境、ほとんどみんなMacになった。
やっぱり楽。

それまでは
WindowsでVMwareとかは重くて断念。
WindowsでLinuxにログイン、が長かったけど、
いろいろ調査するのに個人ごとに環境があった方が良いって事になって結局Macに。
セミナーとかでも講演してる人、Macが多かったし。

デザイン組み込みとかの時も、
デザイナから上がってきた画像を目で見て確認するのに、
Macのopenコマンドとか、QuickLookがかなり便利。



142:nobodyさん
08/05/17 15:27:47
我が輩はWindows XP + InstantRails + Eclipse + RadRailsを使っているなり。
RadRails様々なり。

143:nobodyさん
08/05/17 15:39:08
>>142
うちも最初は同じような環境だったんだけど
Linux(UNIX系)でしか動かないソフトの使用が決定になって断念した。


144:nobodyさん
08/05/17 18:47:59
Windows + colinux + vim( + zsh + screen)

puttyでsshで繋いで作業
eclipse使ってたときもあったけど重くて嫌になった
win上で開発するのはお勧めできない

>>141
vmwareは重いけどcolinuxは結構軽いよ
そりゃ金があるならmacに越したことはないけど

145:nobodyさん
08/05/17 21:18:51
俺はWinXP上でRadRails(単体版)
最近はMacOSに興味あるなー

146:nobodyさん
08/05/17 22:05:37
俺はNetBeans 6.1。Rails対応部分はかなり良いできだよ。
いろいろなところで補完が効くのがいい。

147:nobodyさん
08/05/17 22:14:09
AptanaとかNetBeansて使いやすいんだが、重くね?

C2D1.8G mem1Gのマシンじゃギリギリだ・・・orz
mem2G以上はやっぱほしいよな

148:nobodyさん
08/05/17 22:45:26
>>146
俺はNetBeansとか補完IDE無しでRuby書ける奴凄いと思うよ。
理解できない。

149:nobodyさん
08/05/17 22:48:53
会社はThinkPad X60とかなんで、AptanaとかNetBeans重くて断念。
Linuxサーバに繋いでvi, emacsでやってる。
補完にはあまり頼らないなぁ。


150:nobodyさん
08/05/17 23:04:09
軽いとか重いとかは環境によるから一概には言えないけど
Netbeans 6.1は結構軽くなってると思うけどなあ。
あとRuby機能のみ入ったのをダウンロードするのが軽くて良いと思う。

151:nobodyさん
08/05/17 23:14:55
Rubyのみとかできるのか〜
補完機能は要らないけど、Grepやエクスプローラー機能は秀逸だし
使ってみよう。d

>>149
XGAモニタでIDEはオススメできないw

152:nobodyさん
08/05/18 00:37:58
補完=無駄な入力省略とすら・・・betterPerlな人たちか・・・

153:nobodyさん
08/05/18 01:40:08
いや、クラス名やメソッド名が元から無駄に長くないので。

154:nobodyさん
08/05/18 01:45:34
長さだけの問題じゃねーだろw

155:nobodyさん
08/05/18 03:36:48
>>147
メモリ1.5GBを境に劇的に変わると思う

156:nobodyさん
08/05/18 21:32:48
ActiveRecordで任意のSQL文を発行するにはどうしたらいいですか
具体的には alter table ... とか select setcount() とかを実行したいです。

>>154
同意

157:nobodyさん
08/05/19 00:20:37
Model.find_by_sql
ActiveRecord::Base.connection.execute


158:nobodyさん
08/05/19 02:13:13
>>142>>144→macの流れだな。
aptanaは前のマシンだと重くて駄目だった。

159:nobodyさん
08/05/19 11:06:18
aaa.find(:all, :include=>:bbbb, :select=>'name')のように別テーブルと結合した場合、
:select が効かないんですけどなんとかなりませんか?

160:nobodyさん
08/05/19 14:17:14 8IiAUL/0
>>141-151
すごい参考になりました。
みなさんけっこう工夫されてますね

161:nobodyさん
08/05/19 15:08:45
>>159
’’の中はSQLだから

hoge = Foo.find :all ,
:select => 'foos.id , baas.name',
:include => [:baa]

みたいにどのテーブルのどのカラムって指定しないと無理じゃね?

162:nobodyさん
08/05/19 15:35:10
>>157
さんくす
ActiveRecord::Base.connection.executeを使わせてもらいました。

163:159
08/05/19 16:39:27
>>161
テーブル名.カラム名って書いてもやっぱりだめでした。
必要なカラムの値のみ取得したいのですが、全カラムの値が返ってきます。

:includeを使うと SELECT * でSQLが作られるんでしょうかね?


164:159
08/05/19 16:42:39
>>161
お礼言ってなかった。
サンクス。

その後、:include ではなく :joinsを使えば :selectオプションが効くのはわかりました。



165:nobodyさん
08/05/19 18:27:04
Rubyをシェルスクリプト的に使っているんですけど、
あるスクリプトを実行し終わったらirbに入るようなこと
できますか?

要するにirbでいろいろ操作したいんですけど、
そこにいたるまで初期化命令が沢山あるんで、

require 〜
require 〜
require 〜
をした状態でirbのシェルに入りたいのです。


166:165
08/05/19 18:40:47
自己解決しました

167:nobodyさん
08/05/19 19:00:21
>>164
:include はモデル間でのリレーション
:joins はSQLでのリレーション

:select区指定するような、動的な場合は:join使うとか
モデルにそれ用のメソッド追加するといいかもしれない

168:nobodyさん
08/05/19 19:20:30
create table books (
id integer primary key auto_increment,
title varchar(256) not null,
price integer
);
というテーブルがあったとき、Book#price は nil を返す可能性があります。
そこで
class Book < ActiveRecord::Base
alias _price price
def price
_price || 0
end
end
みたいなかっこわるいことしてるんですけど、もっといい方法があれば教えてください。

169:nobodyさん
08/05/19 19:28:31
テーブル定義で
 price integer not null default = 0 ,

migrateだと
 default => 0 ,:nil => false
のような指定じゃダメか?


170:nobodyさん
08/05/19 22:16:59
>>165-166
自己解決した内容プリーズ
irb -rhoge -rhage -rhige ?

171:nobodyさん
08/05/19 23:47:19
.irbrc に書いとくのもひとつみたい

172:nobodyさん
08/05/20 10:31:27
>>165
個人的にはどういう用途でrubyスクリプト書くのか気になるな


173:nobodyさん
08/05/20 10:41:32
require 'irb'
IRB.start
でirbのプロンプトが出せるので、そこまでの準備はご自由にという感じだな。



174:nobodyさん
08/05/20 13:01:56
2.1の新機能はよさそうですね。特に named_scope。
正式リリースが楽しみです。


175:nobodyさん
08/05/20 14:35:29
ruby script/console
でirbみたいなのが起動しますが、自分のスクリプトの中でrailsアプリを読み込むにはどうしたらいいでしょうか。

#!/usr/bin/env ruby
require '....'
MyModel.find(:all).each do |model|
 puts "#{model.id},#{model.name}"
end

みたいなのが作りたいです。

176:nobodyさん
08/05/20 15:57:56
$ cat script/hoge
#!/usr/bin/env ruby
require File.dirname(__FILE__) + '/../config/boot'

require RAILS_ROOT + '/config/environment'

# 以下で好きなことをする。
みたいな感じ。


177:nobodyさん
08/05/20 22:08:58
f.select で、class="foo" とか onclick="alert()" とかをつけたい場合はどうするんですか。
f.select :foo, :class=>"foo", :onclick=>'alert()' とかしてもだめでした。

178:nobodyさん
08/05/21 00:15:59
>>177

f.select :foo, {}, :class => "foo", :onclick => 'alert()'
かな。
ヘルパメソッドへのオプションとHTMLを作るときのオプションを
それぞれhashで与える必要があり、なおかつ両方とも省略可能なので、
hashが2つあることがわかるように書く必要があるはず。



179:nobodyさん
08/05/21 03:54:23
>>168
呼び出す側で to_i か
def price
read_attribute_before_type_cast(:price).to_i
end
みたいな?

180:nobodyさん
08/05/21 16:38:32
Railsでスプレッドシート作ることってできますか?
もしやっている人のホームページとかわかればお願いします。

181:nobodyさん
08/05/21 21:02:42
ここって質問スレ?

182:nobodyさん
08/05/21 22:27:20
違うけどほかのスレは
ことごとく落ちました。

183:nobodyさん
08/05/21 22:28:25
>>180
できるんじゃね? まあスプレッドシートなら
ほとんどをJavaScriptで作ることになるがw

184:nobodyさん
08/05/23 10:09:55 MzFkkhDr
◆【Web】Ruby on Rails用 統合開発環境(IDE) 比較レポート
Ruby on Rails対応のIDEを使用する場合、NetBeans、Eclipse(プラグインを
追加)など複数の選択肢がありますが、今のところデファクトスタンダードと
呼べるものは存在しません。そこで本稿では、共通の基準に対して複数のIDEを
比較し、各製品の特徴と長所、短所を明らかにします。またRuby on Railsによる
開発を始めるにあたって現時点で最も使いやすいIDEを選定します。
URLリンク(codezine.jp)

185:nobodyさん
08/05/24 23:44:37 ojuOd+8v
Railsの人たちはヒアドキュメントを再発明してしかも正当化してるわけだが。
Web開発をなめるな。

186:nobodyさん
08/05/25 02:46:51
Twitterが重いのはRuby on Railsで造られてるから?

187:nobodyさん
08/05/25 03:39:36 fA12GUeB
>>185はコピペ

>>186
最近phpに切り替えているらしい。
Railsのせいかどうかはわからないけど、twitterの中の人はrailsのせいにしたがってる

188:nobodyさん
08/05/25 04:54:54
食べログがRailsになって、価格コムグループの中のサイトも
Railsが多くなってるみたいね。

最近できたエンジニア向けサイトや映画のサイトもRailsだった。

189:nobodyさん
08/05/25 11:37:31 OXIuJTVX
GrailsアプリならJavaだからWebLogicとかでも動かせるんだがな

190:nobodyさん
08/05/25 13:28:13
>>186
利用者が多いから、とも言える
過疎サイトならrailsで十分

191:nobodyさん
08/05/25 14:02:45
Grailsって、名前だけ見るとPythonかと思ってしまうな。



192:nobodyさん
08/05/25 14:16:23
googleの息かかってるの?

193:nobodyさん
08/05/25 14:26:15
ぐれる

194:nobodyさん
08/05/25 14:47:17
groovyのgだな。


195:nobodyさん
08/05/25 14:48:13
grailが杯(文脈的に聖杯)を思い出させるからな > python


196:nobodyさん
08/05/25 18:11:22 fl6HSoNb
モデルの中で@test = "test"とするのと、self.testというのは何が違うんでしょうか?

197:196
08/05/25 18:12:08
すみません。@test = "test"とself.test = "test"です。
挙動が違うようなので質問させていただきました _ _

198:nobodyさん
08/05/25 18:41:52
ActiveRecordの話で、対象モデルにtestという属性がある場合の話?
self.test = "test" で見るのは @test ではないよ。



199:nobodyさん
08/05/25 18:42:46
ruby-users.jpは、railsを使って作られているらしい。
ソースがCodeReposで公開されてた。
URLリンク(ruby-users.jp)


200:nobodyさん
08/05/25 20:23:34
今更ながらだけどOpenIDいいな。

201:196
08/05/25 22:42:11
>>198
ありがとうございます。もう一回勉強しなおしてきます _ _

202:nobodyさん
08/05/26 00:18:56
RESTで作りたくても確認画面入れないといけないのがなぁ…。


203:nobodyさん
08/05/26 02:25:21
Railsってググれば大抵の事は出てくるし、
ブログでノウハウ出してる所も多いから
ここで聞くってなかなか無い・・・

質問スレになるのはアレだが、イマイチ盛り上がりに欠けるよなぁ・・・

なんというか、寂しい

204:nobodyさん
08/05/26 06:20:41 dq0EoCgj
restful_authenticationのAPI Documentて何処にありますか?
探し方が悪いのか一番見つかりそうで見つからないです。。

205:nobodyさん
08/05/26 11:50:04
restful_authenticationくらいならソース読んだ方が早いぞ

206:nobodyさん
08/05/26 13:24:37
>>203
Ruby自体、盛り上がりに欠ける。
他のRubyスレも閑古鳥が鳴いている。どげんかせんといかん


207:nobodyさん
08/05/26 14:07:36
別に無理に盛り上がらなくてもいいんじゃね
こんなもんだと思うけど

まあブログに書くほどでもなかったりとか書きにくかったりする
泥臭いtipsとかバッドノウハウとか
実際のところXXXの問題はどうやってるのかとか
そういうのがもっとあればなーとか
2chなんだから良い意味でもっと書き捨てて書き殴れよ的な

208:nobodyさん
08/05/26 14:56:05
じゃあ燃料投下

最近Rails本の出版ブームだけどこの動きは何かね?裾野が広がってるとみていいんだろうか

それから2への完全移行を検討してるんだけどみんなの意向具合はどう?俺は既存プラグインの動作確認、ページネーション問題が解決しそうにないので後半年は待つしかないと思ってる
自分のスキル不足も原因だけどね

209:nobodyさん
08/05/26 15:17:25
Rails本増えた事で、
とっつきやすくなって始めてくれる人がいれば嬉しいな。

Rails2移行は結構難航するらしいけど、
とりあえず、まずは、warning出ないようにしていく事からはじめて行けば
楽らしいぜ。

Rails2化もそうだけど、Ruby1.8.7正式リリースも今後あるだろうし、
スケジュール取るならそれからでもいいと思うぜ。

210:nobodyさん
08/05/26 18:38:28
> 最近Rails本の出版ブームだけどこの動きは何かね?

売れると思ったから出した。公開はしていない。

211:nobodyさん
08/05/26 20:15:27
>>199
何でも出来るみたいだけど、これって、セキュリティー的に問題ないの?


212:nobodyさん
08/05/26 20:30:51 zf9CrWER
Rails初心者です。
質問させてください。

ActiveRecordを使って、複数のレコードをCreateして、複数レコードを同時にコミット
(save)したいのですが、どうしたらイイですか?

hoge1=Hoge.new(val=1)
hoge2=Hoge.new(val=2)

hoge1,hoge2を同時にsave(コミット)したい。

213:nobodyさん
08/05/26 20:50:15
>>212
トランザクションを張るといいと思うよ。

Hoge.transaction do
 〜略〜
 hoge1=Hoge.new(val=1)
 hoge2=Hoge.new(val=2)
end

214:nobodyさん
08/05/26 22:27:05 zf9CrWER
212です。ご解答ありがとうございます。

Hoge.transaction do
for i in 0..3 do
Hoge.create(:val=i)
end
end

こんな使い方もおkですか?

215:nobodyさん
08/05/26 22:44:08
>>214
OK
トランザクションの中でfor文廻しても問題茄子!

でも、for文は変数のスコープルールが変わってて、

for i in 0..3 do
 Hoge.create(:val=i)
end
のあとで

p i

のように変数が参照できちゃうから注意な。
普通は繰り返し変数と同名な変数は書かないが

216:nobodyさん
08/05/26 23:01:46 zf9CrWER
『while や for がスコープを作らない』って件ですね。了解です。

もうちょっと聞かせてください。先の例のような場合、create!にして
rescueでエラーハンドリングしとっくのが定番ですか?

217:nobodyさん
08/05/26 23:12:47
>>216
Hoge.transaction do
 begin
  create!
 rescue
  エラー処理
 end
end
トランザクション内でエラーが発生した時、
ロールバックしたいなら例外を投げないとダメだから
必要だぜ。

218:nobodyさん
08/05/26 23:31:08 zf9CrWER
ふむふむ。了解です。
どうもでした。

219:nobodyさん
08/05/26 23:31:51
>>217
スマン。訂正、補足があるよ

create!の時は失敗したら自然に
raise(RecordNotSaved)
が投げられるから
rescue しなくてもロールバックされるよ

create の時には
自分で発生させないとロールバックされないんだ。

rescue では投げられるエラー受け取って
(例外があればロールバックはするから)
エラーメッセージ表示したり、redirect_to で前に戻ったりするような
事書くといいよ。

酔って質問に答えるもんじゃねえな・・・正直すまなかった・・・

220:nobodyさん
08/05/26 23:34:34
補足の補足。

トランザクションでの注意点
URLリンク(underrails.seesaa.net)

saveとsave!
URLリンク(d.hatena.ne.jp)

読んで見るといいよ

create! の中では save! してるのは事実だよorz

221:nobodyさん
08/05/27 00:21:54
関数名に!ってダサいと思う。
!の意味って実質無いも同然だし。

222:nobodyさん
08/05/27 11:39:57
釣られておくけど、 ! がつくかつかないかは
そのメソッドが破壊的かそうじゃないかの違い
破壊的とはオブジェクトそのものを変化させること
rubyでは同名のメソッドがあって片方が
破壊的な場合は ! をつける慣習がある
意味が無くは無い、少なくともrubyにおいては

でもrailsでは別の意味で使われているものもある
saveみたいに例外を投げるか投げないかの違いとか
正直なんでこのメソッドに ! がついているのか
分からないものもrailsにはいくつかある

223:nobodyさん
08/05/27 13:47:17
>>222
だから、ダサいっていってるの。

慣習じゃなくて、エラーが出るようにすればよかったんだよ。
!をつけていないと、オブジェクトを変更できないとか。

結局、独創的(笑)な命名規則以外のなにものでもない。

224:nobodyさん
08/05/27 14:50:34
横レスですまんけど
!ってやっぱりScheme由来なのかな
Eiffelにもなさそうだったし

225:nobodyさん
08/05/27 15:40:48
アマです
PHPは致命的なエラーじゃない限りは処理を続行してくれるけど、Railsは些細なエラーでも処理を止めるので困ってる
例えばnilオブジェクトに何かしようとした時とか

Railsに限らないのかもしれないけど、徹底的に例外処理を施すべきなのでしょうか?

226: [―{}@{}@{}-] nobodyさん
08/05/27 16:02:37
class NilClass; def method_missing(name, *args); end; end;

nil.asdf.asdf.zxcv.zxv.aasdf


エラーになってほしい場面でもエラーにならなくなるからおすすめしない。


227:nobodyさん
08/05/27 17:16:03
>>225
俺もphp→ruby組だが、PHPがゆる過ぎるだけなので
もうちょっと型(クラス)を意識した方がいいと思う

nilオブジェクトについてはnilが帰る可能性を常に考えるようにして
戻りでnilが帰る可能性がある場合はto_a/to_i/to_sとかで
正常な戻りの型に合わせてやるように意識すると
チェインする時もエラーを出さずうまくいく

return_nil_or_array(foo).each { 〜 }
return_nil_or_str(foo).uppercase
return_nil_or_int(foo) + 123

return_nil_or_array(foo).to_a.each { 〜 }
return_nil_or_str(foo).to_s.uppercase
return_nil_or_int(foo).to_i + 123

228:nobodyさん
08/05/27 20:49:53
ぬるぽ考慮は、プログラムの常識じゃね?

unless aaa.xx

end

とか簡単なのでいいから一応チェック汁!

229:nobodyさん
08/05/27 22:14:26 DQKAsM9l
497 名前:デフォルトの名無しさん[sage] 投稿日:2008/05/27(火) 21:48:37
Ruby人口って実際のところ増えてるの?
過去数年分のMLのトラフィックとか求人にRubyという文字列が含まれてる件数とかの
定点観測データで推移が見られるものってどっかにないのかな。

498 名前:デフォルトの名無しさん[sage] 投稿日:2008/05/27(火) 22:06:07
URLリンク(groups.google.co.jp)

これ見ると流量は2008年入って減ってるね。


230:nobodyさん
08/05/28 00:01:09 pgzZgd6l
最初に使った言語がJavaだったせいかGrailsのDynamic Finderが最も親しみやすい

231:225
08/05/28 14:21:52
皆さんありがとう
nil考慮してるんだけど、予想できないユーザーの行動に対する配慮漏れが自分には完全に防げてない

227さんの方法とか、後はtestをもっと重視してエラーを探すべきなのかと思った

232:nobodyさん
08/05/28 19:08:18
質問なのですが。通常、ファイルをサーバーにアップロードする
場合はフォームにファイルINPUTタグを入れてユーザーがファイルを選択して
POSTするというものですが。Railsのプログラムでファイルの名前だけをもらって
そのクライアント側ファイルをサーバーにアップロードするというのは絶対不可能なのでしょうか?
普通の考えでは無理そうなのですが、裏技とかもないものでしょうか・・・。

233:nobodyさん
08/05/28 19:15:41
>>232
クライアントからPOSTしたくないのならば、
サーバがクライアントのファイルをGETするのかい?

Webページ見たらPCの中吸いだされるのと同じじゃなかろうか・・・

どういう経緯でそんな状態が必要なのかkwsk!

234:nobodyさん
08/05/28 21:00:06
>>232
不可能じゃないよ。

ActiveXや、Firefoxなどの場合NPAPIだかXPCOMを使えば、
クライアントのHDDの中アクセスし放題

ファイル名の名前をもらってアップロードはもとより、
ファイル名の名前をもらわなくても、アップロード可能。

235:nobodyさん
08/05/28 23:28:54
ror使ってるんだ。確かに画面写真は、ActiveScaffoldだね。
URLリンク(itpro.nikkeibp.co.jp)

236:nobodyさん
08/05/28 23:49:51
>>235
RoRでブラウザはIE, FFなのに対応OSがWindowsって変だな。


237:nobodyさん
08/05/29 01:06:39
Ruby on Takeshima

URLリンク(www.pref.shimane.lg.jp)

238:nobodyさん
08/05/29 09:17:19
>>233
クライアント側でファイル選択をして(ファイル選択タグを使わないで)
DBにファイル名のみ登録、それから後に、そのファイル名のファイルをサーバーに
上げるというものです

>>234
IEでもFFでも両方できるモジュール、もしくは方法ってないものでしょうか
RoRと連携できるものでないといけませんが。Javaアプリは連携が難しく挫折


239:nobodyさん
08/05/29 10:36:58
>>238
Cか何かで、アプリ作ったほうが早くね?

セキュリティリスク考えると、非常にオススメできない・・・

それか、ファイルサーバ開放して、
そこをネットワークドライブにすればいいジャマイカ

240:nobodyさん
08/05/29 11:55:10
>>239 レスありがとうございます。Javaアプリで検討したときも
Javaアプリで全部作ったほうが早いという結果が出てしまい企画倒れ。
とにかくWebブラウザのみでスマートに処理したかったのですが、
基本的にはクライアント側アプリをどうにかして起動してやらないと
いけないみたいですね・・・。

241:nobodyさん
08/05/29 13:52:00
>>240
URLリンク(labs.gmo.jp)
Gmailの添付ファイルみたいにすぐアップロードとか
URLリンク(www.23hq.com)
とかはFlashでローカルからまとめてファイルをD&Dして
アップロードできるようなインターフェイスがある

242:nobodyさん
08/05/29 14:11:54
>>241 レスありがとうございます。基本的にWebアプリでのファイル送信は
ファイル選択タグよりユーザーがファイルを選んで、自動もしくは手動で送信
が通常の流れですね。
フラッシュを駆使して・・・でも、簡単にできるものだろうか・・・
フラッシュ知らないしなぁ。「ローカルからまとめてファイルをD&Dして」
というのは今回やりたいことではあるのですが。ただし選んでもすぐにアップロード
をしない、というのが今回のコンセプトなんですよ。

243:nobodyさん
08/05/29 14:59:45 mGxyHguq
>>242
そもそもHTTPの基本がぜんぜん分かってない
RFC読め

244:nobodyさん
08/05/29 15:02:52
なににしろ環境依存とセキュリティで難しいんじゃない?
ましてやRAILSで業者挟まずタダでっちゃあなおさら。
引き続きRAILSに限らずとも情報が必要なら、CGIかWEB技術あたりのスレのがいいかもね

245:nobodyさん
08/05/29 15:15:33
ユーザの知らない時に、
ユーザの指定したデータを取ってきてほしいなら

スパイウェア作ってクライアントの中に常駐させて、
それにPOSTしてもらえばいい。

でもRailsとは全く関係はないし、PCが起動してなかったら無意味w

というか、ノートン・FW先生が怒り出すぞwww

大学か何かの研究テーマか?

246:nobodyさん
08/05/29 15:59:53
>>242,244 仰るとうりです。WEBアプリの手始めとしてRoRの入門書を片手に作ってる
ものですから。PHPは広く使われているため、確かに「ぼくRubyできますよ」と言える
ほうがかっこいいですよね。まあそんなことはどうでもいいのですが。
>>245 クライアントサイドで動くアプリは作れるのというのは文書では
よく読むのですが、実際それを作る段になると、サーバーサイドアプリとの連携が
取れないということで、駄目になってしまってるのが現状です。
IEだけサポートなら.NETか何かでさらっと作れそうなんですが、、

247:nobodyさん
08/05/29 21:32:50
自前でアプリ作るしかないだろう
そいつがhttp使ってもそれは全く問題ない
現実的に●nnyがそうだし


248:nobodyさん
08/05/29 21:34:45
>PHPは広く使われているため、確かに「ぼくRubyできますよ」と言える
>ほうがかっこいいですよね。

誰も知らなくて
なにそれ?
っていう空気になって
恥ずかしかった体験があるw


249:nobodyさん
08/05/29 21:36:52
>>246
> >>245 クライアントサイドで動くアプリは作れるのというのは文書では
>よく読むのですが、実際それを作る段になると、サーバーサイドアプリとの連携が
>取れないということで、駄目になってしまってるのが現状です。
>IEだけサポートなら.NETか何かでさらっと作れそうなんですが、、

なんか大きな勘違いをしていると思う。
Webの仕事しかしたことがなくてアプリケーションの作り方を知らないとか。

250:nobodyさん
08/05/29 23:21:09 mGxyHguq
>>247
●nnyのことよく知らないけど有名なHTTP Server / Clientとやり取りするもんなの?
じゃなかったら「HTTPもどき」どまり

251:nobodyさん
08/05/29 23:28:57
ファイル名だけDBに格納して、
同じファイルが他の階層にあったらそれも抜くつもりなんだろうか。
ファイルパス入れてもクライアントのOS依存だし、
ファイルの置き場所変えたら無意味。

252:nobodyさん
08/05/30 01:51:20
質問するときは正直に本当の目的を言った方がいい
初心者の場合なにも分かってなくてそもそもの
アプローチが的外れの可能性もあるから


253:nobodyさん
08/05/30 10:13:51
まぁなんにせよ、ネタとしてはおもしろかったぜ

254:nobodyさん
08/05/30 15:08:55
>>247 そうですね、作るしかなさそうですね
>>249 いやいやWEBアプリはほぼ初めてなので苦労してます
>>252 話は外れますが、特許申請しようとするものの内容を人に話すと
その時点で特許にならないという・・・。今回はそんなものじゃないですが
一応今回は人がやっていないことをするというコンセプトですから、ご了承を
っていうか難しいですねこういうやったことのないことを初めてするということは

255:nobodyさん
08/05/30 18:03:48
人がやらないのは理由がある。
つまり君がつくろうとしているものは
セキュリティ上の問題がある危険なソフトだからだ。

256:nobodyさん
08/05/30 18:11:39
どうみても卒業研究テーマです。ほn(ry

まぁ、セキュリティ云々は後で考えればいいとして、

実現できるかできないかを2chで聞くようじゃ、所詮何もできないと思う。


257:nobodyさん
08/05/30 18:19:14
gettext-1.91.0 rails-2.0.2 (actionmailer-2.0.2)の環境で

require 'gettext'
GetText.locale = 'ja'

で、メール送信(ActionMailer)時に送信元に日本語を入れて

@from = "送信者 <mail@example.com>"

送信していますが、From:がutf8でbase64されてしまいます。
GetTextでは、Subject:と同じようにFrom:も iso-2022-jp でbase64するのかと思った
のですが、こういうものでしょうか?
ちなみに、
/usr/lib/ruby/gems/1.8/gems/gettext-1.91.0/lib/gettext/rails.rb
でチェックしましたが、mail.subjectしか処理していないようです


@@default_charset='iso-2022-jp'
@from = Kconv.tojis("送信者 <mail@example.com>")

とすると、From: も(Subjectも本文も) iso-2022-jp になることがわかりました。
この対応で問題ないでしょうか? (こういうものでしょうか?)


258:nobodyさん
08/05/30 20:10:43
そういうものです

259:nobodyさん
08/05/30 21:24:51
mixiのperlでwikiトピックの阿呆思い出した

ちゃんと助言があっても「それはいいとして」で
自分からは詳しいことは言えませんが情報はくださいって何様ですかw

260:nobodyさん
08/05/30 21:58:01
神様

261:nobodyさん
08/05/30 22:05:44
mixi(笑)perl(笑)wiki(笑)

262:nobodyさん
08/05/31 12:12:13
DBにファイル名適当に突っ込んでおくと、
そのファイルをとってきてくれるのだろうか。
それは画期的だ。

263:nobodyさん
08/05/31 20:57:23
formに関するヘルパーメソッドがたくさんありますが現状どれを使うべきなんでしょうか。
start_form_tag
form_tag
form_for
このうちstart_form_tagは推奨されないメソッドだとネットでよく見ます。
form_tagはstart_form_tagと同じものだったと思うのですが、これも非推奨になったのですか?
それとも紛らわしいからstart_form_tagだけ非推奨になったのですか?

264:nobodyさん
08/06/01 01:14:42
RoR自体が非推奨

265:nobodyさん
08/06/01 08:14:06
>>263
start_form_tag と form_tag は同じものじゃない。
form_tag は引数にブロックを取る。

<% form_tag do %>
...
<% end %>

form_tag は非推奨じゃない。
でも、普通の CRUD なら form_for の方が手間が省けることが多い。

266:263
08/06/01 11:13:18
>>265
ありがとうございます。
form_tagは<%= form_tag %>...<%= end_form_tag %>で書けるのもありますよね。
ブロックで書くform_tagだけ生き残った感じなのかな

267:nobodyさん
08/06/02 01:32:30
以下のようなテーブルがあって、
<tbl>
貸し主(kasi), 借り主(kari), 金額(money)


太郎と次郎にそれぞれ10000円以上貸しているような人を検索するSQL文
--
SELECT tbl.kasi, tbl1.money, tbl2.money
FROM (
SELECT kasi , money
FROM tbl
WHERE kari LIKE '太郎'
AND money >= 10000
) AS tbl1,
(
SELECT kasi , money
FROM tbl
WHERE kari LIKE '次郎'
AND money >= 10000
) AS tbl2,
WHERE tbl1.kasi = tbl2.kasi
--

を、コントローラの findメソッドで実現できますか?

268:nobodyさん
08/06/02 02:43:22
find_by_sqlとかexecuteとか


269:nobodyさん
08/06/02 02:44:12
コントローラじゃなくてモデルでは?


270:nobodyさん
08/06/02 11:12:53
普通はモデルだが、
Controllerでもできるし、
Viewでもやろうと思えば、できる・・・

271:nobodyさん
08/06/02 11:16:49
>>267
サブクエリ使ってるの無駄っぽいし
そもそもテーブル設計が微妙な気がする

272:nobodyさん
08/06/02 14:26:08
>>259 いやいや、まあそれはそうですが、
別に何様のつもりではありません。質問サイトで「質問しているが、説明が少なすぎて
回答のしようがない」とかいうのがよくありますから、そういうのでしたらご指摘ください。

ちなみにIE限定だと、
URLリンク(d.hatena.ne.jp)
でアップロードできそうな雰囲気ですね。VBSを使わずにこういうことって
できるのでしょうか?(JSだけでとか)>>234 の方がNPAPIだかXPCOM
とかいってたのでそれを調べてみます。


273:nobodyさん
08/06/02 15:25:43
少しだけ更新
version 2.1
* Time zones
* Dirty tracking
* Gem Dependencies
* Named scope
* UTC-based migrations
* Better caching


274:nobodyさん
08/06/02 19:11:28
RoRのMVCって意味ないよなぁ

275:nobodyさん
08/06/02 19:50:08
そんなことはない。

意味が無いのはPHPな。
あれは元からHTMLレスポンス用に特化されてんのに、
わざわざ流行(?)に影響されてMVCやってるというw
変なたとえだが、ダイヤの原石を捨てて、ガラスを手にして喜んでるようなもの。

276:nobodyさん
08/06/02 21:35:38
また、PHPに嫉妬かw

277:nobodyさん
08/06/02 23:50:13
磨かないと光らない原石より
安直に手に入るキラキラしたものの方が
いまどきの女には受けが良いのは確か


278:nobodyさん
08/06/03 17:24:29
久々にRoR使ってみた。掲示板つくるのに30分かかっちまった。

279:nobodyさん
08/06/03 21:01:06 zVx6k5xJ
分業するとMVCってイイんじゃないの。

280:nobodyさん
08/06/03 21:42:08
なんか手段と目的が逆になっているなw

PHPだからMVC使うべきじゃないとか、なんだそりゃw

HTMLレスポンスが得意なだけで、
それだけしかできないわけじゃないんだしさ。

281:nobodyさん
08/06/03 22:26:51
分業って、M, V, Cで別々にやるわけじゃないからなぁ。
コントローラ単位で MVC ひとかたまりをそれぞれ分業なら分かるかな。



282:nobodyさん
08/06/04 04:56:46
>>281
さすがだな、それ確実に誤解釈。
M, V, Cで分けた方が圧倒的にコスト減。
開発、改修共にね。

というか縦に割って技術者・Project共にいい事なんか何一つ無い。

業務知識(笑)な所だとそうしてる所多いけど無駄ばっかりだね。

283:nobodyさん
08/06/04 04:57:07
そもそも、php系のMVC厨は完全に分離しなけりゃならないという
「宗教」で語るからスルーした方がいいですよ
php厨から見てさえ、適材適所を悪だと罵る奴ら

284:nobodyさん
08/06/04 04:58:23
って11秒前のお前よう・・・w

285:nobodyさん
08/06/04 05:00:18
21秒前だろうがボケ。

286:nobodyさん
08/06/04 05:14:03
>>284
いや俺PHP触った事無いけど・・・っていうか(ry
php厨には分からないと思うけど、基本Viewは別言語だしね。
まぁ別言語でMVCやってから書き込みなよw

287:nobodyさん
08/06/04 11:57:34
RailsのViewってデザイナになかなか渡しづらい。便利helper書いちゃうし。
Controller書いてて一部実装をModelに移すこともある。

もちろんテーブル設計とかは分離して考えることができるけど
RailsでMVC完全分業って効率良いのかね。
チームも小さい所が多いだろうし。

288:nobodyさん
08/06/04 12:09:09
MVCにそこまで拘る気は無いが、DRYには拘りたい。

コントローラーはできるだけすっきりしたいぜ。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4667日前に更新/132 KB
担当:undef