我正在尝试编写一个必须与POST交互的应用程序,但是在访问参数时遇到了问题。这并不意味着现在有用,但我只是想刷新表单的结果。根据google dev工具,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 %>
任何帮助表示赞赏。
如果您使用“ form_for”,那么check_box名称将显示为“ user [tennis]”,而不仅仅是“ tennis”。在浏览器中查看源代码,您应该会看到这一点。
在您的控制器方法中执行以下操作(尽管我不确定如何用“ form_for:user”调用它,因为上面代码中的“ activities”路由不在您的routes.rb中):
user_params = params.require(:user).permit(:tennis)
flash[:notice] = user_params[:tennis]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句