如何将参数传递给 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
是否存在。
我想将年份和月份传递给控制器。按下提交按钮时,年月信息应传递给控制器 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
是否存在。