新手问题 这种写法好吗,大家怎么写的,请指教下吧,

fayake · 2014年07月24日 · 最后由 fayake 回复于 2014年07月24日 · 2387 次阅读
search_value = (b = Brand.where(cn_name: search_value).first).present? ? b.name : search_value if search_value.present?

|| + try() 吧……

#1 楼 @Kabie 可以直接帮把上面这个给改成您的写法吗

if search_value
   search_value = Brand.where(cn_name: search_value).first.try(:name) || search_value
end

我建议你最好在赋值的时候给 search_value 换个名字,这样写可读性很差还容易出错。

整理一下业务逻辑再写代码吧 value = value if value.present? 这不是废话么

中了 present 的毒。。。

#4 楼 @dddd1919 我没有说清楚,是这样,如果对像存在则把对像中的 name 传给 value,对像不存在则 value 还是原来的值,

变量 =   Model.find_by_cn_name(value) ? 对像.name : value if value

#5 楼 @debugger 我就是,我以后不用这个了,直接 IF

#3 楼 @raven 是这样的,以后我也这种写法了,谢谢

你新改过的逻辑的通常写法是用||=

foo ||= Brand.find_by :cn_name, value
需要 登录 后方可回复, 如果你还没有账号请 注册新账号