我的视图:
<div class = "btn btn-link">
<%= link_to 'Generate Rating Set', {
:controller => "co_view_rating",
:action => "generate_rating_set_co_view" } %>
</div>
这链接到我的控制器中的一个操作,该操作将创建一个新记录。如何通过视图中的此方法将变量传递给控制器中的操作。变量将是用户通过文本字段输入的。
您应该使用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
您可以在这里找到更多关于formtag和输入类型的文档:http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html
如果用户输入来自文本字段,则可能需要一个表单。
<%= 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[:awesome_text_field]
在params散列中可用。
根据@Sparda的说法,使用一个带有post的字段,并传递一个hidden_field(如果你想隐藏它)、一个input_tag或text_field