2009-02-11 56 views
1

如何處理允許用戶向父項添加子對象而無需導航到父項?ruby​​ on rails:在不訪問父項的情況下向現有父項添加子項記錄

例如添加期刊文章而不必導航到期刊並首先發布?家長也可能不存在。

我不希望數據輸入過於繁瑣,以至於使用戶找到日記或創建日記,然後發現或創建問題似乎有點多。我寧願只擁有一個帶日記和發行字段的單一表格。如果不是因爲用戶對文章感興趣而不是期刊或問題,這個邏輯就很簡單。

你只是修改一個創建的孩子,以便它找到或創建父母?

回答

6

我假設你有一個雜誌模型,有許多文章和屬於日記的文章模型。首先,你應該制定路線的文章控制器,經過雜誌,而不是通過雜誌:

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 %> 

然後用戶可以選擇一本刊物,但如果一個被傳入,它會預先選定的正確的價值。

相關問題