我假设你有一个杂志模型,有许多文章和属于日记的文章模型。首先,你应该制定路线的文章控制器,经过杂志,而不是通过杂志:
ActionController::Routing::Routes.draw do |map|
map.resources :journals, :has_many => :articles
map.resources :articles
end
现在,你可以得到你的文章控制器与URL /articles/new
或/journals/1/articles/new
新动作。然后在您的文章控制器的新动作,你这样做:。
@article = Article.new(:journal_id => params[:journal_id])
哪组文章任何参数传递给的journal_id
如果没有参数通过,journal_id将是零。
在ERB模板,只是你这下创建降:
<%= f.collection_select :journal_id, Journal.all(:order => "name"), :id, :name, :include_blank => true %>
然后用户可以选择一本刊物,但如果一个被传入,它会预先选定的正确的价值。