2017-11-29 17 views
1

このビューをコントローラに移動するにはどうすればよいですか?あなたのビューでビューからコントローラへのロジック

モデル

class Reserve < ApplicationRecord 
    belongs_to :user, optional: true 
end 

ビュー

<% @user_list.each do |user| %> 

<td><%= user.name %></td> 

<% Reserve.where(:user_id=>user.id).each do |a| %> 
    <td><%= a.date %></td> 
    <td><%= a.time %></td> 
<% end %> 

コントローラ

@user_list = User.all 

答えて

2

あなたは、クエリを交換user.reservesにアクセスし、それらを反復処理することができます:

私が作成する必要がありました

class SomeController < ApplicationController 
    def index 
    @user_list = User.includes :reserves 
    end 
end 

は、私はあなたのケースを知らないが、reservesで動作するように:コントローラで

0は、代わりに、各ユーザごとに一つずつを照会、ユーザーの埋蔵量を取得するためにincludesを使用しますinflects設定ファイルのエントリ:

# config/initializers/inflections.rb 

ActiveSupport::Inflector.inflections do |inflect| 
    inflect.irregular 'reserve', 'reserves' 
end 
+0

質問は予約です= Reserve.where(:user_id => user.id)ですか? – John

+0

'User.includes:reserves'はあなたがやりたいことを行います。代わりに、各ユーザのwhere節を使ってdbをもう一度打って試してみてください。そして、はい、それは@ジョンです –

+0

最後の質問コントローラ内で反復したいオブジェクト予約= 'Reserve.where(:user_id => user.id)'を作成し、reserve.each do | f |コントローラのuser.idを渡すことは可能ですか?ありがとうございます – John

関連する問題