现在我已经对Tour表的tour_id进行了硬编码,我怎样才能让它变得动态?
(select_tag 'tournament_id',options_from_collection_for_select(Tournament.all.where(:tour_id => 1)
答案 0 :(得分:1)
如果我理解你的问题是正确的。
模型
class Tour < ActiveRecord::Base
has_many :tournaments
end
class Tournament < ActiveRecord::Base
belongs_to :tour
end
控制器(类似这样)
...
@tour = Tour.includes(:tournaments).find(1)
在视图中
(select_tag 'tournament_id',options_from_collection_for_select(@tour.tournaments, ...)
无论如何,Tournament.all.where(:tour_id => 1)
不是轨道方式。在不同的实践中使用rails关联(这里有更多信息rails associations)
@tour = Tour.find(1)
@tour.tournaments # all tournaments where tour_id = 1 (tour has_many tournaments)