【问题标题】:Rails: Block particular Actions based on formatRails:根据格式阻止特定操作
【发布时间】:2012-04-05 14:11:25
【问题描述】:

根据几个在线教程,我的 rails 应用使用 :mobile 格式来呈现针对移动设备优化的页面。

所以对于某些操作,除了 *.html.erb 文件之外,我还有一个 *.mobile.erb 文件。

但如果我想禁止移动网站上的某些操作怎么办?

例如,对于特定资源,您可以在移动设备上执行索引和显示,但不能执行编辑或新建。

最好的方法是什么?目前,我只是没有 edit.mobile.erb 或 new.mobile.erb,但这只是显示“模板缺失”错误 - 不是很优雅。

有什么建议吗?

【问题讨论】:

    标签: ruby-on-rails mobile routing format


    【解决方案1】:

    您可以尝试访问 params[:format] 以检查该操作是否对特定格式有效。如果没有,您可以重定向或显示自定义错误页面,或者您想要执行的任何其他操作来优雅地禁止操作。

    #..inside your controller..
    
    def do_something
      if !["html","xml"].include?(params[:format])
        #invalid format. do something
      end
      #..do other things
    end
    

    【讨论】:

    • 好的,我想这就是我要做的。我希望有一些优雅和 Rails-y 的东西,比如 Routes.rb 中的一些特殊关键字。我可能会在每个控制器中放入一个 before_filter,它映射到一个执行白名单/黑名单检查的私有方法。感谢您的建议!
    猜你喜欢
    • 2014-04-25
    • 1970-01-01
    • 2020-01-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多