通过link_to动作传递变量

时间:2013-02-01 22:54:02

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2

我的观点:

<div class = "btn btn-link">
  <%= link_to 'Generate Rating Set', {
    :controller => "co_view_rating", 
    :action => "generate_rating_set_co_view" } %>
</div>

这链接到我的控制器中创建新记录的操作。如何通过此视图中的方法将变量传递给控制器​​中的操作。变量将是通过文本字段的用户输入。

3 个答案:

答案 0 :(得分:1)

您应该通过包含POST方法的表单发送变量。

<%= form_tag('/co_view_rating/generate_rating_set_co_view') do %>
    <%= text_field_tag 'my_variable' %>
    <div class="btn btn-link">
        <%= submit_tag "Generate Rating Set" %>
    </div>
<% end %>

在你的控制器动作中:

def generate_rating_set_co_view
    my_variable = params[:my_variable]
end

您可以在此处找到有关form_tags和输入类型的更多文档:http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html

答案 1 :(得分:0)

如果用户输入来自文本字段,您可能需要表单。

<%= form_tag {:controller => "co_view_rating", :action => "generate_rating_set_co_view"}, :method => :get do |f| %>
  <%= text_field_tag :awesome_text_field, "default value" %>
  <div class="btn btn-link">
    <%= submit_tag "Generate Rating Set" %>
  </div>
<% end %>

然后,文本输入将在params散列中显示为params[:awesome_text_field]

答案 2 :(得分:0)

调整@Sparda所说的内容,使用带有post的字段,并传递hidden_​​field(如果你想隐藏它)或input_tag,或text_field