RAILS3:link_to(... method:post ...)和No route匹配“/ dropup”

时间:2011-04-25 19:30:03

标签: ruby-on-rails-3

我正在从rails2迁移到rails3,我遇到了以下错误:

  

未知行动
  无法找到SessionLocalesController

的操作'show'

那是因为我有一个方法的link_to:post inside。

我以前的研究表明我使用按钮而不是添加<%= javascript_include_tag:默认%>排到我的代码,因为rails3是不引人注目的javascrtipt:

1.Button不是一个解决方案,因为同样的问题在其他地方发生,所以这样做也会解决它。
2.<%= javascript_include_tag:默认值%> 似乎可以正常工作,但它却反而出现了这个错误:

  

路由错误     没有路由匹配“/ dropup”

我现在被困住了。在此先感谢您的时间。

如上所述,这是代码:

<% for locale in (I18n.available_locales) -%>
<%= link_to image_tag("flags/" + locale.to_s + ".png", :title=>locale.to_s) + " " + locale.to_s, session_locale_path(:new_locale => locale.to_s), :method => :post %>  <%=link_to t('language'), 'dropup', {:id=>"language_select", :class=>"language_select",:title => t('translate.change')} %>
  <ul id="language_menu" style="display:none">                                    
      <% for locale in (I18n.available_locales) -%>
          <li><%= link_to image_tag("flags/" + locale.to_s + ".png", :title=>locale.to_s) + " " + locale.to_s, session_locale_path(:new_locale => locale.to_s), :method => :post %> </li>  

1 个答案:

答案 0 :(得分:1)

我已经解决了这个问题。之前在stackoverflow中已经多次解决了同样的问题,但只有在找到解决方案之后我才注意到它。好吧,这是&gt;

http://www.simonecarletti.com/blog/2010/06/unobtrusive-javascript-in-rails-3/

获取jQuery并将以下内容添加到布局中:

&lt;%= javascript_include_tag:默认值%&gt; &lt;%= csrf_meta_tag%&gt;

我提供的链接的更多信息。