如何在Rails中使用if条件的结果?类似的东西:
if @edits.where(:article_id => a.id).first
THIS.body.html_safe
else
a.body.html_safe
end
我如何获取该条件的结果?那是 THIS 记录?
谢谢!
答案 0 :(得分:2)
您可以在if
声明中进行作业。
if edit = @edits.where(:article_id => a.id).first
edit.body.html_safe
else
a.body.html_safe
end
答案 1 :(得分:1)
你可以写一行:
(@edits.where(:article_id => a.id).first || a).body.html_safe
答案 2 :(得分:1)
将这样的逻辑放在视野或助手中是非常难看的。判断这些并不是View的工作。
更好的选择:
# Article model
def default_edit
edits.first
end
# Articles Controller
def show
article = Article.find(params[:article])
@article = article.default_edit || article
end
# view: no need to do anything, just plain obj
<%= @article.body %>
答案 3 :(得分:0)
您可以使用find_by
或find_by_*
来避免讨厌的.where().first
if edit = Edit.find_by(article_id: article.id)
edit.body.html_safe
else
article.body.html_safe
end