我在同一视图中有几个表单,它们似乎相互冲突。我有一个表单,它应该调用用户控制器中的instead操作,但它调用的却是用户控制器中的logins操作。
下面是我的config/routes.rb:
get "logins" => 'users#logins', :as => 'logins'
delete "logins" => 'users#deletelogin', :as => 'logins'
post 'logins' => 'users#addlogin', :as => 'add_login'
get "logins" => 'users#search', :as => 'search'
get "logins" => 'users#reveal', :as => 'reveal'下面是链接到错误操作的按钮:
<td><%= button_to "Reveal", { :controller => :users, :action => 'reveal', :id => login.id }, method: :get, :class => 'btn' %></td>这是正在呈现的html:
<td><form action="/logins?id=24" class="button_to" method="post"><div><input class="btn" type="submit" value="Reveal" /><input name="authenticity_token" type="hidden" value="POKdWunwvaKQHb+Mzj/3UrG0xIbKPqELy4n3VGqGrxU=" /></div></form></td>发布于 2013-01-19 11:16:40
所有三个get方法都映射到/logins url,因此行为是意料之中的。
get方法中使用的散列的第一部分定义了将在url中使用的实际路径。你必须做一些类似这样的事情:
get "logins" => 'users#logins', :as => 'logins'
get "search" => 'users#search', :as => 'search'
get "reveal" => 'users#reveal', :as => 'reveal'才能达到预期的效果。
https://stackoverflow.com/questions/14410736
复制相似问题