Я борюсь с этим несколько дней и не могу понять, что случилось. Я пытаюсь разрешить прикрепление полиморфных файлов к модели Item
, которая принадлежит модели Location
. Мои маршруты определены как:
resources :locations do
resources :items
post :sort
end
resources :items do
resources :assets #model for attachments
end
Я следовал руководству о том, как делать именно это с carrierwave и nested_form . Однако после настройки я получаю следующую ошибку при запросе действия New
для модели Item
: неправильное количество аргументов (4 вместо 3)
. Он сообщает мне, что ошибка возникает в строке 7 этого представления:
<%= nested_form_for [@location, @item], :html => { :multipart => true } do |f| %>
<%= f.label :name %>
<%= f.text_field :name %>
<%= f.fields_for :assets do |a_form| %> ### LINE 7 ####
<%= a_form.label :file %>
<%= a_form.file_field :file %>
<%= a_form.hidden_field :file_cache %>
<%= a_form.link_to_remove "Remove this attachment" %>
<% end %>
<%= f.link_to_add "Add attachment", :assets %>
<%= f.submit %>
<% end %>
Если я не использую гем nested_form и запускаю представление с нормальной form_for
, я не получаю ошибок и могу успешно прикрепите один файл к элементу
. Я могу попробовать продолжить работу без драгоценного камня, но (насколько я понимаю) nested_form автоматизирует некоторые функции, такие как удаление файлов и создание ajax для добавления новых вложений.
Мне просто интересно, сталкивался ли кто-нибудь с этой ошибкой или знает, какую ошибку я делаю, вызывая проблемы с nested_form? Я понимаю, что означает ошибка, но не уверен, где / почему добавлен дополнительный аргумент.Я очень ценю любую информацию, которую вы можете предоставить!
К вашему сведению, мои настройки разработчика: rails (3.1.0, 3.0.10), nested_form (0.1.1), carrierwave (0.5.7)