使用嵌套资源#rails创建一个新对象

时间:2016-03-09 05:34:44

标签: html ruby-on-rails ruby forms

我有一个用于创建笔记本的rails应用程序,笔记本。我正在写一个表单来创建一个新的注释,但我很困惑如何格式化表单。这就是我目前所拥有的:

notebook / id / note / new - >图

= form_for [@notebook, @note] do |note|
  == note.label :title
  == note.text_field :title
  br
  == note.text_field :body
  br
  == note.submit :save

NotesController - >

  def new
    @note = Note.new
  end


 def create
    @note = @notebook.notes.create(notes_params)
    @note.user = current_user
    redirect_to @notebook
 end

  my routes: 
     resources :notebooks  do
       resources :notes 
     end

我收到的错误是

 undefined method `notes_path' for #objectnumber

1 个答案:

答案 0 :(得分:0)

由于notesnotebooks下的嵌套资源,form_for方法需要对网址提供一些帮助。它正在尝试从传递到块中的note创建路径,但是您需要指定url是嵌套的,如下所示:

= form_for [@notebook, @note], url: notebook_note_path(@notebook, @note) do |note|

有关详细信息,请参阅Rails Guides page on creating urls and paths