Railsでif条件の結果を使用するにはどうすればよいですか? 何かのようなもの:
if @edits.where(:article_id => a.id).first
THIS.body.html_safe
else
a.body.html_safe
end
その条件の結果にアクセスするにはどうすればよいですか?それがこのレコードですか?
ありがとう!
Railsでif条件の結果を使用するにはどうすればよいですか? 何かのようなもの:
if @edits.where(:article_id => a.id).first
THIS.body.html_safe
else
a.body.html_safe
end
その条件の結果にアクセスするにはどうすればよいですか?それがこのレコードですか?
ありがとう!
if
ステートメント内で割り当てを行うことができます。
if edit = @edits.where(:article_id => a.id).first
edit.body.html_safe
else
a.body.html_safe
end
次のように 1 行で記述できます。
(@edits.where(:article_id => a.id).first || a).body.html_safe
そのようなロジックをビューまたはヘルパーに配置することは非常に醜いです。これらを判断するのは 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 %>
を使用し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