首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails:如果存在记录,那么使用此记录

Rails:如果存在记录,那么使用此记录
EN

Stack Overflow用户
提问于 2013-06-19 06:13:00
回答 4查看 168关注 0票数 2

如何在Rails中使用if条件的结果?类似于:

代码语言:javascript
运行
复制
if @edits.where(:article_id => a.id).first
  THIS.body.html_safe
else
  a.body.html_safe
end

我怎么才能得到那个条件的结果呢?那是,这是记录?

谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-06-19 06:18:07

你可以用一行来写:

代码语言:javascript
运行
复制
(@edits.where(:article_id => a.id).first || a).body.html_safe
票数 1
EN

Stack Overflow用户

发布于 2013-06-19 06:16:55

您可以在if语句中执行赋值。

代码语言:javascript
运行
复制
if edit = @edits.where(:article_id => a.id).first
  edit.body.html_safe
else
  a.body.html_safe
end
票数 2
EN

Stack Overflow用户

发布于 2013-06-19 06:56:58

把这样的逻辑考虑进去,或者说是帮手,是非常丑陋的。判断这些不是View的工作。

更好的替代办法:

代码语言:javascript
运行
复制
# 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 %>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17184056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档