Rails 从数据视图链接到控制器中的操作
Posted
技术标签:
【中文标题】Rails 从数据视图链接到控制器中的操作【英文标题】:Rails Linking to action in controller from view with data 【发布时间】: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" 我无法以比上面更优雅的方式对结果进行逆向工程。
【问题讨论】:
【参考方案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 中是否发生了一些变化。或者我在尝试手动哈希时出错了,因为我无法让它工作。以上是关于Rails 从数据视图链接到控制器中的操作的主要内容,如果未能解决你的问题,请参考以下文章