我正在尝试创建一个只能在某个布尔值设置为true之前访问一次的表单,并且随之输入其他一些信息,问题是我不知道如何设置它到目前为止,表单加载没有问题,但它不会更新用户的信息。
我的主要问题是我不知道如何设置路线和表格,因为大多数时候我只是使用resources:
自动制作它们
这是我的表格:
<%= form_for @user, url: organizer_user_path, method: :put do |f| %>
.
.
.
<%end%>
我的路线,我认为不是正确的
get 'organizer/user', to: "users#organizer_form"
put 'organizer/user', to: "users#organizer_registration"
和我的控制器
def organizer_form
@user = User.find(current_user[:id])
end
def organizer_registration
@user = User.find(current_user[:id])
if @user.update_attributes(user_params)
redirect_to @user
else
render 'organizer_form'
end
end
我确定问题在于我如何定义我的路线以及如何在表格上调用它们,任何帮助?
这是提交的参数:
--- !ruby/object:ActionController::Parameters
parameters: !ruby/hash:ActiveSupport::HashWithIndifferentAccess
utf8: "✓"
_method: put
authenticity_token: w9zTUQLK+4kZtbvRCfcYfZgn8ma4xSRdbTMy+fktpoHlGADxHSB6u9QBh3K3zv72V/Ys2b3Q1MiKC0Gr+OqNJw==
user: !ruby/object:ActionController::Parameters
parameters: !ruby/hash:ActiveSupport::HashWithIndifferentAccess
organizer: 'true'
contact_name: Name
last_name: Last name
contact_email: mail1@mail.com
cellphone: '1234567'
company: ''
office_phone: ''
website: ''
permitted: false
commit: continuar
controller: users
action: organizer_registration
permitted: false
这是我的user_params
def user_params
params.require(:user).permit(:name, :email, :password, :password_confirmation, :organizer, :contact_name, :last_name, :contact_email, :cellphone, :company, :office_phone, :website)
end
答案 0 :(得分:0)
attr_accessor :organizer, :contact_name, :last_name, :contact_email, :cellphone, :company, :office_phone, :website
以某种方式阻止了更新的发生,因此删除使更新保存到数据库。