2016-03-09 135 views
0

我有一个创建笔记本和笔记本内的笔记本应用程序。我正在写一个表单来创建一个新的笔记,但我很困惑如何格式化表单。这是我目前有:创建一个嵌套资源的新对象#rails

笔记本/ ID/NOTE /新 - >查看

= 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 
+0

你能分享你的路线文件吗? –

+0

我只是用我的路线更新我的问题 –

+0

如何在控制器中加载/分配@notebook? – Dharam

回答

0

由于notesnotebooks下的嵌套资源,因此form_for方法需要一些关于url的帮助。它试图创建从note传递到块的路径,但你需要指定的URL嵌套,就像这样:

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

获取更详细的信息,请参阅Rails Guides page on creating urls and paths

+0

我试过你的建议,但最后没有路线匹配错误。 –