принять вложенные атрибуты не работает - PullRequest
1 голос
/ 06 февраля 2011

Я пытаюсь создать вложенную форму, но мне чего-то не хватает, так как постоянно получаю сообщение об ошибке.

- конфигурация модели

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 Ответ

2 голосов
/ 06 февраля 2011

Кажется, ваши маршруты настроены неправильно. Следующая строка:

<%= 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| %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...