1

我尝试从 Portfolio 视图调用我的 Gallery 控制器的操作。作品集由许多画廊组成。

我试试这个:

<%= 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>

有大神帮帮我吗?

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 回答