我的应用包含用户,照片和州模型,具有以下设置:
州有很多用户。
用户有很多照片。
我将照片视图设置为主页(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
列?答案 0 :(得分:0)
所以您的关联设置如下:
state.rb
has_many :users
user.rb
belongs_to :state
has_many :photos
photo.rb
belongs_to :user
只需添加到state.rb
即可has_many :photos, :through => :users
然后你可以做到:
@photos = State.find_by_name(params[:state][:name]).photos