我假設你有一個雜誌模型,有許多文章和屬於日記的文章模型。首先,你應該制定路線的文章控制器,經過雜誌,而不是通過雜誌:
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 %>
然後用戶可以選擇一本刊物,但如果一個被傳入,它會預先選定的正確的價值。