我的应用具有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
列吗? - 目前的方法有什么问题?