【问题标题】:How can I use the "#redirect to '/path'" method in a ternary condition?如何在三元条件下使用“#redirect to '/path'”方法?
【发布时间】:2020-09-23 20:57:47
【问题描述】:

我正在处理我的 Sinatra 控制器文件中的不同路由,这些路由在某种条件下 #redirect 到其他路由。 但是,我想使用三元条件而不是完整的 if/else/end 条件来清理代码并节省空间。

我的问题是我该如何转这个:

if Helpers.is_logged_in?(session)
   erb :"tweets/show"
else 
   redirect to "/login"
end 

进入这个:

Helpers.is_logged_in?(session) ? erb(:"tweets/show") : redirect to "/login"

如果没有 #redirect to "/path" 方法导致 SyntaxError?

【问题讨论】:

    标签: ruby sinatra


    【解决方案1】:
    Helpers.is_logged_in?(session) ? erb(:"tweets/show") : redirect("/login")
    

    (Helpers.is_logged_in? session) ? (erb :"tweets/show") : (redirect "/login")
    

    在这两者之间,我更喜欢前者;但我非常喜欢你的原始代码。源代码中的“节省空间”(除了 DRYing)不是一个有意义的追求,除非是在混淆竞赛中。

    【讨论】:

      猜你喜欢
      • 2019-05-02
      • 1970-01-01
      • 1970-01-01
      • 2010-09-28
      • 1970-01-01
      相关资源
      最近更新 更多