Rails POST参数不能在控制器中访问

时间:2015-04-14 06:01:30

标签: html ruby-on-rails ruby-on-rails-4

我正在尝试编写一个必须与POST交互的应用程序,但是我在访问参数时遇到了问题。这并不意味着现在有用,但我只是试图闪现表格的结果。根据google开发工具,POST参数设置为1。

这是我的routes.rb文件

 devise_scope :user do
  put 'users/toggle_activation' => 'users/sessions#toggle_activation' 
  get 'users/sign_out' => 'users/sessions#destroy'
  post 'pages/home' => 'users/sessions#activities'
end

这是有问题的控制器

  def activities
    params.permit(:tennis)
    current_user.save
    flash[:notice] =  params[:tennis]
    redirect_to root_path
  end

这是表格代码

<%= form_for :user do |f| %>
<%= f.check_box :tennis %>
<%= f.submit %>
<% end %>

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

如果您正在使用&#34; form_for&#34;,则check_box名称将显示为&#34;用户[网球]&#34;,而不仅仅是&#34;网球&#34;。在您的浏览器中查看源代码,您应该看到这一点。

在你的控制器方法中执行以下操作(虽然我不确定如何使用&#34; form_for:user&#34来调用它;因为你的&#34;活动&#34;路线不是&# 39; t在上面代码中的routes.rb中:

user_params = params.require(:user).permit(:tennis)
flash[:notice] = user_params[:tennis]