Rails方法具有默认值

时间:2013-07-14 23:51:10

标签: ruby-on-rails

我在application_helper.rb文件中有辅助函数:

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)。我做错了什么?

1 个答案:

答案 0 :(得分:1)

您的问题似乎必须将cn传递给定期呼叫:

raw(attribute.name+nested_attributes(sub_attributes, cn))