与轨道的link_to语法3(link_to_remote)和基本的JavaScript在Rails 3应用程序不能正常工作?

StackOverflow https://stackoverflow.com/questions/2458841

我正在或想知道如果基本的link_to语法在当前Rails3中主完全断裂,如果我在这里做了一些错误的语法。

= link_to "name", nil, :onlick => "alert('Hello world!');"

实际应该在点击产生警报。很简单。在我的Rails3中的项目不起作用! (也没有错误输出!)任何想法?

对于普通的link_to语法我无法找到一个例子在那里我可以一个link_to_remote与确认,遥控器和HTML类结合(见下面我尝试)

= link_to "delete", {:action => "destroy", :remote => true, :method => :delete, :confirm => "#{a.title} wirklich Löschen?" }, :class => "trash"

甚至Rails3中API不会帮助我在这里: HTTP://rails3api.s3.amazonaws的.com / index.html的

帮助!

有帮助吗?

解决方案 2

确定它看起来像新的非侵入式JavaScript的变化推出的问题。 看到下面的帖子详细信息,如果您遇到类似的问题 HTTP://blog.loopedstrange。 COM /适度-rubyist存档/导轨-3- UJS和 - CSRF - 间代码

 <%= csrf_meta_tag %>

固定事我。

其他提示

我相信在这里你的问题是,你已经设置的链接,以示警告当败局已定,而不是被点击时它。 ;)

至于link_to_remote,它已与交换机不显眼的JavaScript改变。你可以在这里读到它: HTTP ://blog.solnic.eu/2009/09/08/unobtrusive-javascript-helpers-in-rails-3.html

零不起作用:

= link_to "name", nil, :onclick => "alert('Hello world!');"
=> <a href="/currentpath", onclick="alert('Hello world!');">name</a>

您应该使用:

= link_to "name", "#", :onclick => "alert('Hello world!');"
=> <a href="#", onclick="alert('Hello world!');">name</a>

如果这里没有其他的答案的为你工作那么也许这将有所帮助。

所以csrf_meta_tag声明是不够的我,虽然应当在Rails 3的布局文件添加反正。我原来是用jQuery的冲突。我只是把这个:

<script type="text/javascript">
  jQuery.noConflict();
</script>

后,我的布局和原型和jQuery之间的冲突的轨道脚本标签得到解决。变戏法我得到了确认对话框上的删除。

该技术使用的link_to时,试图删除一条记录也解决了我原来的问题。随着的link_to任何破坏命令似乎重定向到显示页面备案。因此,我提出基于我看到一些其他的解决办法,以button_to,但没有确认。我不知道是否有一些与jQuery和Prototype更多深层次的问题。

这一切都发生在那些似乎无需包括原型或是否工作正常升级的Rails 2.3.5应用程序:默认在我的布局文件。

在一个侧面说明我并遵循以下说明:

HTTP:// WEBTECH。 union.rpi.edu/blog/2010/02/21/jquery-and-rails-3/

尝试和失去原型一起为这个项目并使用为Rails 3,而不是jQuery的git的子模块。按照这些指示没有不确认对话与button_to和显示页面的link_to使用工作的时候,我很激动。只是想我会提到它使救一个人的努力这个麻烦。

以上,因为我不能评论又一个答案的题外话注释:(

@robeastham: 我想我会留下一些评论认为,可能与一些你encoutered的问题有所帮助。

我一直有在“消灭链接重新定向到展示页面,而不是索引页”的问题,以及因为从ActiveRecord的到Mongoid切换,并没有发现一个真正的解决方案(已经雏形删除)。位置到respond_with:但是,该工作是干净一种变通方法使用明确地指定再直接路径

respond_with @themodel, :location => themodels_url

对于得到一个确认弹出了一个按钮,你可以这样做:

button_to "Button Name", { :controller => "your/controller", :action => :action_name, :confirm => "Text for the pop-up"}, { :method => :<method name> }

e.g。

button_to "Click Here", { :controller => "home", :action -> :set_completed, :confirm => "Mark the item complete?" }, { :method => :put }

这为我工作:

<%= link_to "Recommend", recommend_user_path(@user), :remote => true %>

检查,这是在你的意见\布局\ application.html.erb(或等同物):

<%= csrf_meta_tags %>

请注意的Rails V3.2.2使用的 “标签” 而不是 “标签”

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top