1

同じ見方でいくつかのフォームがありますが、それらは互いに矛盾しているようです。ユーザーコントローラーで表示アクションを呼び出すことになっているフォームがありますが、代わりにユーザーコントローラーでログインアクションを呼び出しています。

これが私の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>
4

1 に答える 1

2

/logins3つのgetメソッドはすべてURLにマップされるため、動作は予想どおりです。

メソッドで使用されるハッシュの最初の部分はget、URLで使用される実際のパスを定義します。次のようなことをする必要があります。

get "logins" => 'users#logins', :as => 'logins'
get "search" => 'users#search', :as => 'search'
get "reveal" => 'users#reveal', :as => 'reveal'

望ましい効果を得るために。

于 2013-01-19T03:16:40.287 に答える