这似乎是一个非常简单的问题。假设我想检查动态条件,以便在某些Helper Module
中添加某些属性:
def add_tag(hash)
content_tag(:div, class: "some_class", rows: "#{check_rows(hash)}")
end
def check_rows(hash)
hash[:rows].nil? ? "" : hash[:rows]
end
这很好用,但如果rows
我不希望hash[:rows].nil?
出现在生成的代码中。所以我尝试了这个
content_tag(:div, class: "some_class", "#{check_rows(hash)}")
和
def check_rows(hash)
hash[:rows].nil? ? "" : ":rows => hash[:rows]"
end
但无法识别"#{check_rows(hash)}"
。有没有办法做到这一点?
答案 0 :(得分:0)
我认为你对content_tag方法的参数是错误的。试试这个:
def add_tag(hash)
content_tag(:div, check_rows(hash), class: "some_class")
end
答案 1 :(得分:0)
替换
def add_tag(hash)
content_tag(:div, class: "some_class", rows: "#{check_rows(hash)}")
end
def check_rows(hash)
hash[:rows].nil? ? "" : hash[:rows]
end
与
def add_tag(hash)
content_tag(:div, "#{check_rows(hash)}", class: "some_class")
end
def check_rows(hash)
hash[:rows].nil? ? "" : {"rows" => hash[:rows]}
end
无法识别的原因是因为您将:rows => hash[:rows]
作为字符串传递,而content_tag则需要哈希值。