collection_select()
selectのなかでHashかArraysを使う
例:select (:artists, :name, @deadArtists)
は@deadArtistsにある全ての芸術家のドロップダウンリストを生成する。
deadArtistは値が@artists.nameに一致するか、それぞれチェックされる。
一致した場合、その芸術家が選択された状態のドロップダウンが生成される。
[/account_controller.rb]
def signup
@groups = Group.find(:all)
@user = User.new(params[:user])
return unless request.post?
@user.save!
self.current_user = @user
redirect_back_or_default(:controller => '/account', :action => 'list_group')
flash[:notice] = "Thanks for signing up!"
rescue ActiveRecord::RecordInvalid
render :action => 'index'
end
[signup.rhtml]
<label for="group_id">部署</label>
<%= collection_select(:groups, :group_id, @groups) %>
query文
Group Load (0.001989) SELECT * FROM groups
クエリはあっているようだけど
<エラー文> wrong number of arguments (3 for 5)
5個のとこが3個しかないっていわれてる?
だとすれば。。。プルダウンに入る値の設定かな?
<%= collection_select(:groups, :group_id, @groups, :id, :name) %>
<エラー文> undefined method `group_id' for #
そりゃそうだった!groups DBには :id と :name の2項目しかありません。
<%= collection_select(:groups, :id, @groups, :id, :name) %>
おお!ちゃんとプルダウンで部署名が表れました。
新規ユーザー登録してみると・・・(まだgroup_idのDBへの登録は設定してない)
あ。やっぱりどのグループにも登録されてない。
が、登録したユーザーでのログインは出来ました。
とりあえず、ユーザー一覧も作っておこう。・・・としたら、
上で書いている『どのグループにも登録されてない』おかげで
うまいこと表示されず、またまた遠回りをしてしまいましたが、
日に日に「ピン!」と来る回数は増えたのですが、
debugが上手に出来ず小さなミスで右往左往している気がします。
明日は、やりかけた、acts_as_authenticatedとは
で勉強しつつ、
authenticatedに無い新しい項目のDB登録を完成させたいです。
0 件のコメント:
コメントを投稿