Jquery 和 Rails 3 : Link_to Edit Action Remotely

标签 jquery ruby-on-rails-3 link-to

我有一个讨论 Controller ,我希望有一个远程链接的编辑操作,允许 AJAX 调用在页面上呈现部分内容(而不是重新路由到全新的“编辑”页面。

我的问题是我已经在 Controller 中设置了操作,以及所有(我认为是)必需的文件。但是讨论显示页面上的链接将浏览器重定向到新页面,而不是链接到 Controller 上的操作和相应的 edit.js.erb 文件。我想知道我的代码哪里出错了..

这是讨论 Controller 的代码:

 class DiscussionsController < ApplicationController
   include DiscussionsHelper

   def create
     ...
   end

   def show 
      ...
   end

   def edit
     respond_to do | format |  
        format.js
     end
   end 
 end

我希望将其称为 js.erb 文件 edit.js.erb (目前我只填充了一个警报 - 一旦此链接正确,我打算用 jquery 代码填充它以呈现编辑部分我想要:

 alert("hello");

我在节目页面上放置的link_to是:

 <div class="discussion_overview">
   <h1><%= @discussion.title %></h1>
   <div class="edit_disc">
<%= link_to "Edit", :url => {:action => "edit", :id => @discussion}, :remote => true %>
   </div><br>

正如我所说,我认为这会调用 edit.js.erb 文件,然后我可以用适当的代码填充该文件。但是,link_to 链接到:

 http://localhost:3000/discussions/54?remote=true&url[action]=edit&url[id]=54

关于我做错了什么有什么想法吗?

更新删除 url => {} 为:

 <%= link_to "Edit", :action => "edit", :id => @discussion, :remote => true %>

没有解决解决方案,只是将重定向更改为:

http://localhost:3000/discussions/54/edit?remote=true

而不是对编辑操作进行 AJAX 调用..

最佳答案

这只是 link_to 行中的语法问题。

<%= link_to "Edit", {:action => "edit", :id => @discussion}, :remote => true %>

link_to() 方法中的第二个参数是 url。通过在前面添加 :url => {} 您的 url 哈希位于另一个哈希中。只需删除 :url => 即可。 :)

关于Jquery 和 Rails 3 : Link_to Edit Action Remotely,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6735099/

相关文章:

ruby-on-rails-3 - rails 3 使用参数渲染部分

jquery - 使用 jQuery 动态隐藏特定表行的链接

ruby-on-rails - Rails 3.0 发送邮件安全最佳实践

ruby-on-rails-3 - 让 Action Mailer + Devise 完美配合

ruby-on-rails-3 - 如何在 Rails 3.1 中使用验证来强制复合唯一性?

Javascript/Rails - 如何在 javascript 中包装 link_to 而不是 <an></a>

ruby-on-rails - 带有选项的 link_to image_tag (rel, title)

单击或触摸时的 Javascript

jquery - 如果没有选中复选框则显示确认

javascript - 突出显示所选菜单项不起作用