2010-10-02 48 views
2

創建的記錄,我有以下3軌嵌套資源:嵌套的資源,書籍>作者...投稿

resources :books do 
    resources :authors 
end 

我authors表有ID |名稱| book_id

鑑於我在URL /書籍/ 312 /作家/新

如何構造的控制,所以我創建分配到一本書

@author = Book.author.create.(params[:author]) 

一個新的作者是什麼作者應該形成新的樣子嗎?

<%=form_for [Book, Author.new] do |f| %> 

感謝

回答

2

在你的作者控制器的創建操作:

def create 
    @book = Book.find(params[:book_id]) 
    @author = @book.authors.build(params[:author]) 

    #rest of your code... 

然後在你的新形式作者:

<%= form_for [:book, @author] do |f| %> 

希望幫助!

+0

謝謝!現在嘗試...我需要添加任何東西到作者新控制器?也許可以通過book_id? – WozPoz 2010-10-02 20:26:17

+0

它也必須是.build?它可以創建嗎? – WozPoz 2010-10-02 20:26:59

+0

只是試了一下......在我的本地機器上提交表單後,它掛起了一段時間,然後錯誤::: BusyException:數據庫被鎖定:INSERT INTO「authors」....是我的routes.rb文件的東西向右看? – WozPoz 2010-10-02 20:29:08

0

你想用inherited resources

+2

謝謝你能分享爲什麼嗎?我不能在Rails中使用標準的嵌套資源方式嗎?在我掌握默認的Rails 3方法來完成這件事之前,我毫不猶豫地開始添加插件。 – WozPoz 2010-10-02 18:28:37