1

ポートフォリオ ビューからギャラリー コントローラーのアクションを呼び出そうとしています。ポートフォリオは多くのギャラリーで構成されています。

私はこれを試します:

<%= link_to("Heart", gallery_path(gallery), :action => "like", :method => :put ,  :remote => true) %>

<%= link_to("Heart", :controller => :galleries, :action => "like", :method => :put ,  :remote => true) %>

そして、私は得ます:

<a href="/galleries/3" action="like" data-method="put" data-remote="true" rel="nofollow">Heart</a>

<a href="/galleries/1/like?method=put" data-remote="true">Heart</a>

取得したいのですが、立ち往生しています...:

<a href="/galleries/3/like" data-method="put" data-remote="true">Heart</a>

私を助けてくれるRAILSの神はいますか?

4

2 に答える 2

2

「パスヘルパー」スタイルと「パラメータハッシュ」スタイルを同じように使用しようとしているため、動作が発生していると思いますlink_to(詳細については、ドキュメントを参照してください)。私はパスヘルパースタイルを好むので、次のようなリンクを記述します。

<%= link_to(
    'Heart',
    like_gallery_path(gallery),
    {:method => :put, :remote => true}
) %>

paramsハッシュスタイルが好きな場合は、次のように記述します。

<%= link_to(
    'Heart',
    {:controller => 'galleries', :action => 'like', :id => gallery.id},
    {:method => :put, :remote => true}
) %>

URLパラメーター(コントローラー、アクションなど)は、リンクパラメーター(メソッドおよびリモート)とは別のハッシュにあることに注意してください。

お役に立てば幸いです。

于 2013-01-27T18:44:45.113 に答える
0

試してみてください:

<%= link_to "Heart", gallery_path(gallery), :url => { :controller => "galleries", :action => "like"}, :method => :put, :remote => true)  %>
于 2013-01-27T15:14:01.677 に答える