2013-07-14 6 views
0

У меня есть вспомогательные функции в application_helper.rb файла:Rails методы со значениями по умолчанию

def nested_attributes(attributes, cn = controller_name.classify) 
    attributes.map do |attribute, sub_attributes| 
     content_tag(:ul) do 
      content_tag(:li, :id => cn+"[#{attribute.id}]") do 
       raw(attribute.name+nested_attributes(sub_attributes)) 
      end 
     end 
    end.join.html_safe 
end 

, а затем звоню его из вида:

<%= nested_attributes @categories.arrange, 'baget_category_id' %> 

Но когда я проверить результат, я получил имя контроллера (Которое является значением по умолчанию) вместо «baget_category_id». Когда я удаляю значение по умолчанию, я получил ошибку: неправильное количество аргументов (1 для 2). Что я делаю неправильно?

+0

Что такое тип 'attribute'? – vee

+0

атрибут - массив – Roman

ответ

1

Ваша проблема, кажется, вы должны пройти сп для повторяющегося вызова:

raw(attribute.name+nested_attributes(sub_attributes, cn)) 
Смежные вопросы