Eri*_*oss 28 ruby haml ruby-on-rails
我有一个共同的视图,列出了两个不同的模型.唯一的区别是,在设置link_to动作时,其中一个模型具有link属性而另一个模型没有.我想检查link属性是否存在,如果存在,请检查它是否已设置.我有以下工作,但我想知道是否有更好的方法.
%li
- if @element.has_attribute?("link") && @element.link
= link_to @element.title, @element.link
- else
= link_to @element.title, @element
Run Code Online (Sandbox Code Playgroud)
ck3*_*k3g 31
你可以使用presence:
= link_to @element.title, (@element.link.presence || @element)
Run Code Online (Sandbox Code Playgroud)
或者,如果@element可能根本没有link,您可以使用try:
= link_to @element.title, (@element.try(:link) || @element)
Run Code Online (Sandbox Code Playgroud)
ahn*_*cad 13
我相信你可以做@element.attribute?(例如@element.link?)(我想我们可以把它称为"魔法属性".)
这会检查
正是你想要的.
尝试使用属性哈希.此哈希将返回key => value所有activerecord对象的属性的映射.
if @element.attributes['link']
# Here we are
else
# default
end
Run Code Online (Sandbox Code Playgroud)