Rails - Controller Action只能通过JS调用执行

时间:2011-02-11 08:34:16

标签: ruby-on-rails ajax

在我的视图文件中,我使用collection_select:onchange => remote_function执行来自同一控制器的其他操作(操作最终会更新页面内容)

我希望这个动作只有在JS调用时才能访问,而不是在浏览器中直接输入相应的路径作为URL时。

知道我怎么能这样做吗?

2 个答案:

答案 0 :(得分:2)

您可以使用request.xhr?检查请求类型,无论是AJAX请求还是其他(post,get)。它返回true或false。如果为true,您可以执行操作。

答案 1 :(得分:1)

您可以使用respond_with和respond_to

class MyController
  respond_to :js

  def index
    respond_with(@users = User.all)
  end
end