Rails:根据格式阻止特定操作

时间:2012-03-21 03:21:20

标签: ruby-on-rails mobile routing format

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

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

但是,如果我想禁止在移动网站上执行某些操作,该怎么办?

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

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

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

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

#..inside your controller..

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