如何将参数传递给 ROR 中的控制器

How to pass parameters to a controllers in ROR

我想将年份和月份传递给控制器​​。按下提交按钮时,年月信息应传递给控制器​​ foo 的操作 show

我已将表格编辑为

<%= form_tag "/test" do %>
<%= month_field_tag :yearMonth %>
<%= submit_tag %>
<% end %>

我应该如何将其存档在视图中以及如何在 foo 控制器中获取传递的参数?

Rails 4+ 你必须在你的控制器中有一个params.require private def 来允许你定义为"okay" 的变量被解析。您的控制器将通过 .require.

过滤掉任何未明确允许的内容
private
def name_of_controller_params
  params.require(:name_of_controller).permit(:yearMonth, :anothervar, :etc)                   
end

要在操作点查看控制器中的参数哈希,您可以将此调试代码插入到相关操作中。您可以使用它来查看您的参数是否从表单进入控制器的操作。

    def show
      flash[:info] = "Params hash #{params}."
      other actions...
    end

像这样的东西会起作用:

<%= form_tag '/test' do %>
  <%= month_field_tag 'month_value', '' %>
  <%= submit_tag %>
<% end %>

然后检查 show 操作的参数以查看 month_value 是否存在。