【问题标题】:Rails Linking to action in controller from view with dataRails 从数据视图链接到控制器中的操作
【发布时间】:2013-07-25 20:14:50
【问题描述】:

我知道有一种更优雅的方法可以做到这一点,但我想不通,我的大脑一定卡在“S”档。

<% @imageline.each do |album| %>
   <%link_s = '/prepdownload?tag=gorilla'%>
   <%=link_to (link_s) do %>
     <%= image_tag src ='gorilla.jpg' %>
   <%end%>
<%end%>

我有一个控制器操作预下载,我需要传递被点击的图像的 ID。一旦我尝试强制执行该操作,其他方法就会对我失效。

{"tag"=>"gorilla", "controller"=>"profiles", "action"=>"prepdownload"} 我无法以比上面更优雅的方式对结果进行逆向工程。

【问题讨论】:

    标签: ruby-on-rails view controller params


    【解决方案1】:

    看起来你想要一个查询字符串。

    您可以像这样编写手动 URL 哈希:

    <%= link_to {controller: "profiles", action: "prepdownload", tag: "gorilla"} do %>
      <%= image_tag src ='gorilla.jpg' %>
    <% end %>
    

    但优雅的方法是使用命名路由

    # config/routes.rb
    get 'prepdownload', to: 'profiles#prepdownload', as: :prepdownload 
    

    然后调用命名路由,传入你的查询字符串参数:

    <%= link_to prepdownload_path(tag: "gorilla") do %>
      <%= image_tag src ='gorilla.jpg' %>
    <% end %>
    

    【讨论】:

    • 好吧,这太容易了:)。只是为了扩展一点。我通过执行添加到查询字符串(标签:“gorilla”,名称:“coco”)。这一切都很好。我确实有命名路径,但我想我出于某种原因从未尝试过使用它。
    • 顺便说一句,让我大吃一惊的是你的第一个方法,我尝试了语法错误,意外':',期待'}'而且我没有提到我使用的是 Rails 4.0,如果这有所作为
    • @user2406315 抱歉,您是在问我问题吗?
    • 我很抱歉。我想知道 Rails 4.0 中是否发生了一些变化。或者我在尝试手动哈希时出错了,因为我无法让它工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多