Rails 3 - 链接/按钮,无需重定向即可运行ajax请求

时间:2011-09-27 00:02:38

标签: ajax ruby-on-rails-3 model-view-controller jquery

链接运行ajax命令的最佳方法是什么(我在Rails 3.1中使用jquery)?到目前为止,我试图通过控制器操作“update_me”使用链接来运行代码。

views/products/new.html.erb包含以下内容:

<%= link_to "Update", :action => 'update_me' %>

在我的产品控制器中,我有:

def update_me
    logger.debug 'ajax code will be here'
end

但是这会丢失模板错误:

缺少模板

  

缺少模板产品/ update_me,application / update_me,{:handlers =&gt; [:erb,:builder,:coffee],:formats =&gt; [:html],:locale =&gt; [:en,: EN]}。搜索:*“/ home / ubuntu / code / preevio / app / views”*“/ home /ubuntu / .rvm / gems / ruby​​-1.9.2-p290 @ rails31 / gems / devise1.4.3 / app /意见“

为什么我的观点中需要update_me.html.erb?我认为这就是他们想要的。我不能只是在控制器动作/方法中启动代码而不必查看它吗?或者我是以错误的方式接近这个?

2 个答案:

答案 0 :(得分:3)

我知道这个答案有点晚了,但是我发布给其他可能在这里试图做类似事情的人。

如果您将html行更改为

<%= link_to "Update", :action => 'update_me', :remote => true %>

应该有提供操作的链接并为您执行ajax调用。

您可以查看提供的链接以查看文档。

http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-link_to

答案 1 :(得分:0)

由于Rails具有约定优于配置,因此Rails需要适当的视图来控制控制器中的操作。

如果你想要什么都不渲染: http://guides.rubyonrails.org/layouts_and_rendering.html#using-render

render :nothing => true