接受嵌套属性不起作用

时间:2011-02-06 00:06:27

标签: ruby-on-rails-3

我正在尝试创建一个嵌套的表单,但我遗漏了一些错误。

- 配置模型

class Configuration < ActiveRecord::Base
  has_many :configoptions
  accepts_nested_attributes_for :configoptions
end

- 显示配置视图

<%= form_for @config do |f| %>
  <%= f.fields_for :configoptions do |fp| %>
    <p>
      <%= fp.label :name %>
      <%= fp.text_field :name %>
    </p>
  <% end %>    
  <%= f.submit %>
<% end %>

根据一些在线指南,我发现这应该有效。但我一直收到错误:

undefined method `configuration_path' for #<#<Class:0x2549dac>:0x2548f88>

有没有人知道如何使这项工作?

非常感谢!

1 个答案:

答案 0 :(得分:2)

您的路线似乎配置不正确。以下一行:

<%= form_for @config do |f| %>

创建一个表单标记以将新的/更新的对象发布到。在这种情况下,它会查找configuration_path作为新对象表单的默认路径。使用rake routes查看是否有与此相似的列表

configurations GET    /configurations(.:format)          {:action=>"index", :controller=>"configurations"}
               POST   /configurations(.:format)          {:action=>"create", :controller=>"configurations"}

或在resources :configurations中查找config/routes.rb。 (如果没有,请添加resource :configurations)。如果您对路由感到困惑,请查看相应的Rails指南: http://guides.rubyonrails.org/routing.html

或者,您可以通过将:url参数传递给表单助手来指定要将操作发布到的其他URL:

<%= form_for @config, :url => some_other_path do |f| %>