如何在控制器中调用不同的关联资源变量?

时间:2013-08-01 20:26:26

标签: ruby-on-rails ruby

我是初学者,学习Ruby on Rails。如果这个问题非常明显,请道歉......

我有两个资源:

books and book_pages

一本书有几页,我在模型中设置了belongs_to和has_many关联。在书页控制器中,如何在此关联下创建新的book_page?我目前有:

class BookPagesController < ApplicationController
...

def new
  @book_page = BookPage.new

   end
end

...

另外,我如何设置相应的视图来创建新页面?

2 个答案:

答案 0 :(得分:1)

一般来说,你需要使用这样的代码:

book = Book.find(book_id)
book.book_pages.create(page_number: 1, footnote: "yey")

但请注意,您需要在请求中以某种方式获得图书ID。

我强烈建议你不要混淆并阅读rails guides,因为rails使用约定优于配置,如果你没有阅读文档,可能会非常混乱。

答案 1 :(得分:0)

我鼓励你在rails console上测试一下,它对调试非常有用。 ActiveRecord :: Base模型可以使用以下关联进行初始化:

Book.create(
  title: "TITLE",
  book_pages: [
    { text: "blabllblablalblab", number: 1) },
    { text: "kasdhfkjahwkqjrgs", number: 2) }
    # ....
  ]
)

@fotanus答案同样有效。 http://api.rubyonrails.org/classes/ActiveRecord/Base.html