【问题标题】:link_to using PUT method syntax to a different controller in rails 3link_to 使用 PUT 方法语法到 rails 3 中的不同控制器
【发布时间】:2013-01-11 00:01:37
【问题描述】:

我尝试从 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>

有哪位大神帮帮我?

【问题讨论】:

    标签: ruby-on-rails controller link-to put


    【解决方案1】:

    我相信你得到的行为是因为你试图在相同的link_to 中使用“path helper”和“params hash”样式(有关更多详细信息,请参阅the docs)。我更喜欢路径助手样式,所以我会这样写链接:

    <%= 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 参数(控制器、操作等)与链接参数(方法和远程)位于单独的散列中。

    希望有帮助!

    【讨论】:

      【解决方案2】:

      尝试:

      <%= link_to "Heart", gallery_path(gallery), :url => { :controller => "galleries", :action => "like"}, :method => :put, :remote => true)  %>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-01-22
        • 1970-01-01
        • 2023-04-08
        • 2012-11-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多