rails中helper方法属性中的两个可选值

时间:2011-06-06 04:38:20

标签: ruby-on-rails ruby

我创建了一个辅助方法,用于生成带有链接

li内容标记
def method1(attribute,path,classname={},id={})
  content_tag(:li, link_to(attribute, path,:class => classname),:id => id)
end

我正在调用辅助方法,如

<%= method1("BLOGS",blogs_path,"","blog1")%>

在上面的例子中,我为类提供了一个空字符串,因为这里不需要类,但其他地方需要它。

但是如果我在课堂上使用空字符串,那么"blog1"就成了班级。

我该如何解决这个问题?

我正在使用rails 2.3.11

2 个答案:

答案 0 :(得分:2)

查看options hashes。这在Rails的任何地方都使用,非常适合处理这样的笨重的方法调用。

答案 1 :(得分:1)

同意其他答案。您的方法定义应该更像

def method1(attr, path, options={})
    content_tag(:li, link_to(attribute, path,:class => options[:classname]),:id => options[:id]) 
end

然后您可以指定要传递的内容。在缺点方面,我似乎记得rails如果没有传入类名,则将类名设置为id