私のアプリには、次の設定のuser、photo、およびstateモデルがあります。
州には多くのユーザーがいます。
ユーザーは多くの写真を持っています。
写真ビューをホームページ (application.root) として設定しました。選択した状態で写真をフィルタリングするための選択タグを設定しようとしています。
ビューで:
<%= form_tag photos_path, :method => 'get' do%>
<%= select("state", "name", State.all.collect(&:name)) %>
<%= submit_tag "State" %>
<% end %>
コントローラーで:
if params[:state]
statesmen = State.find_by_name(params[:state][:name]).users
statesmen.each do |person|
@photos = @photos << Photo.where(:user_id => person.id)
end
end
質問:
- 写真を集める良い方法はありますか?
- 現在、写真テーブルには
user_id
列しかありません。state_id
列も作成する必要がありますか? - 現在のアプローチの何が問題になっていますか?