В моем основном шаблоне у меня есть следующее:
<%= render :partial => "delivery_date", :collection => @brand.delivery_dates, :locals => {:form => f} %>
Однако, когда частичное пытается использовать локальную переменную формы, я получаю эту ошибку
Showing app/views/brands/_delivery_date.html.erb where line #2 raised:
wrong number of arguments (0 for 1)
Extracted source (around line #2):
1: <%= delivery_date.id %>
2: <%= form.text_field :name %>
3: <% new_or_existing = delivery_date.new_record? ? 'new' : 'existing' %>
4: <% prefix = "brand[#{new_or_existing}_delivery_date_attributes][]" %>
5: <% fields_for prefix, delivery_date do |dd_f| %>
Кто-нибудь понимает, чтозначит эта ошибка?
На самом деле я хочу сделать
<% form.fields_for delivery_date do |dd_f| %>
, но это тоже не получается.
Я попытался заменить :locals
на :locals => { :f => f }
и сослаться на форму, используя f
в частичном.Никакого эффекта, ошибка тогда будет undefined method or variable f
.
...
Хорошо, вместо того, чтобы просить вас отладить ошибку, вопрос также в том, как отобразить fields_for во вложенной частичной форме:
В основном шаблоне:
<% form_for @object do |f| %>
<% render :partial => 'child', :collection: @object.child %>
<% end %>
В дочернем шаблоне:
<% form.fields_for child do |c_f| %>
<%= c_f.text_field :foo %>
<% end %>
Как правильно передать этот объект формы?
Извинитезабыл добавить среду:
Ruby 1.8.7
Rails 2.3.?(надо искать минорную версию, код передо мной отсутствует)
(я знаю, что это вопрос новичка :()