gpt4 book ai didi

ruby-on-rails - Rails 3 - 重构 ruby 条件

转载 作者:数据小太阳 更新时间:2023-10-29 07:47:08 26 4
gpt4 key购买 nike

我想知道在 ruby​​ 中是否有更简单的方法来完成这两个条件:

if params[:action] == 'index' || params[:action] == 'show'

if !(comment = (session[:my_params].include?(:comment) rescue nil)).nil?

提前致谢

最佳答案

对于第一个,你可以这样做:

if %w(index show).include?(params[:action])

第二个确实应该重构为两行:条件检查中的赋值是一种代码味道;从来没有理由这样做。

如果您使用的是 Rails/ActiveSupport,则可以利用 Object#try

comment = session[:my_params].try(:include?, :comment)
if comment
# ... comment is in scope
end

否则,你会得到一些稍微笨重的东西:

comment = session[:my_params].include?(:comment) rescue nil
if comment
# etc

关于ruby-on-rails - Rails 3 - 重构 ruby 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5727653/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com