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 从数据视图链接到控制器中的操作的主要内容,如果未能解决你的问题,请参考以下文章

从rails中的控制器渲染部分

Ruby on Rails:将数据调用到 javascript 中的首选方法?

(Rails)从不同视图中的控制器访问方法

Ruby on Rails 路由到控制器

Rails - 将信息从视图传递到 Javascript

如何将标签中的数据从表视图行操作发送到视图控制器?