2010-12-14 49 views
4

我在Rails 3中使用SimpleForm。如何为此嵌套资源创建提交按钮?Rails3 - 如何为嵌套资源提交提交按钮

resources :schools do 
    resources :students 
end 

<%= simple_form_for @student do |f| %> 
    <%= f.input :first_name %> 
    <%= f.input :last_name %> 
    <%= f.button :submit %> 
<% end %>  

如果我使用f.submit

ActionView::Template::Error (undefined method `students_path' for #<#<Class:0x000001040ddfb8>:0x000001040d2578>): 
1: <%= simple_form_for @student do |f| %> 
2:  <%= f.input :first_name %> 
3:  <%= f.input :last_name %> 
4:  <%= f.submit %> 

回答

16

的观点正确的代码是:

<%= simple_form_for [@school, @student] do |f| %> 
    <%= f.input :first_name %> 
    <%= f.input :last_name %> 
    <%= f.button :submit %> 
<% end %> 
0

只需使用<%= f.submit %>代替<%= f.button :submit %>

+0

检查编辑,我上传的结果 – Nerian 2010-12-14 22:48:48

+0

你的结果是无关的这个当前问题,请让在另外一个问题。如果我的答案为你工作,你应该upvote并接受它:) – Zabba 2010-12-14 22:51:34

+0

它没有工作。我得到了和以前相同的错误。在耙路线中,我看到:PUT /schools/:school_id/students/:id(.:format) – Nerian 2010-12-14 22:53:39

0

不知道如何或在哪里,你正在设置@school。 如果@school为零,上面的答案可能不起作用。

但是你也可以使用

<%= simple_form_for [:school, @student] do |f| %> 
<%= f.input :first_name %> 
<%= f.input :last_name %> 
<%= f.submit %> 
<% end %>