2013-07-25 41 views
0

我知道有一種更優雅的方式來做到這一點,但我無法弄清楚,我的大腦必須卡在「S」檔中。Rails通過數據查看鏈接到控制器中的動作

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

我有一個控制器操作prepdownload,我需要傳遞被點擊的圖像的id。只要我嘗試強制行動,其他方法就會對我產生影響。

{「tag」=>「gorilla」,「controller」=>「profiles」,「action」=>「prepdownload」}我不能以比上面更優雅的方式對結果進行逆向工程。

回答

0

看起來你想要一個查詢字符串。

你可以寫出一本手冊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 %> 
+0

好吧,那太容易了:)。只是擴大一點。我通過做(標籤:「gorilla」,名稱:「coco」)添加到查詢字符串中。這一切都很好。我確實有命名的路徑,但我想我從來沒有嘗試過使用它的原因。 – bobbdelsol

+0

順便說一句,是什麼讓我覺得是你的第一個方法,我嘗試錯誤,語法錯誤,意外的':',期待'}'我沒有提及,我使用的Rails 4.0,如果這有所作爲 – bobbdelsol

+0

@ user2406315對不起,你問我一個問題嗎? – Substantial