将参数从link_to传递给控制器​​方法

时间:2014-05-31 22:19:17

标签: ruby-on-rails methods parameters controller link-to

如何将subscription.title传递给我的控制器方法watchsub?那么你如何访问watchsub中的变量?

在我看来,我有

<% @subscriptions.each do |subscription| %>
              <tr>
                <td> <%= link_to subscription.title, watchsub_stream_path(subscription.title), :method => :get %> </td>
              </tr>
            <% end %>

1 个答案:

答案 0 :(得分:1)

首先,您需要发布请求,而不是获取,因为您要发送内容。您必须在routes.rb文件中为自定义操作创建路径,如:

post "/sub/:id" => your_controller#watchsub , as: :watchsub    #Here id will be your subscription id

然后你可以像这样建立你的链接:

<%= link_to subscription.title, watchsub_path(subscription.id), :method => :post %>

并且在您的watchsub方法中,您可以通过执行以下操作来访问该特定订阅:

@subscription = Subscription.find(params[:id])

这将为您提供更多灵活性,因为您可以获得订阅,并且您可以访问其所有属性,例如,如果您想要标题,那么您可以简单地进行

@subscription.title