【问题标题】:Two optional values in the attribute of the helper methods in railsrails 中辅助方法的属性中的两个可选值
【发布时间】:2011-06-06 04:38:19
【问题描述】:

我创建了一个辅助方法,用于生成带有链接的li 内容标签

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

我正在调用辅助方法,例如

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

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

但是如果我对 class 使用空字符串,那么 "blog1" 将成为 class ..

我该如何解决这个问题?

我正在使用 rails 2.3.11

【问题讨论】:

  • 为什么不设置一个选项哈希,以便您可以在需要时选择添加类或 ID?查看表单助手的文档和源代码,您可以在那里复制方法

标签: ruby-on-rails ruby


【解决方案1】:

查看options hashes。这在 Rails 中几乎无处不在,非常适合处理此类笨拙的方法调用。

【讨论】:

    【解决方案2】:

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

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

    然后你可以指定你想要传递的内容。不利的一面是,我似乎记得如果没有传入的类名,rails 会将类名设置为 id

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-07-28
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 2012-12-30
      • 2016-07-22
      • 1970-01-01
      相关资源
      最近更新 更多