Rails

时间:2017-07-10 06:37:48

标签: sql ruby-on-rails forms

我正在尝试创建一个只能在某个布尔值设置为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

1 个答案:

答案 0 :(得分:0)

终于找到了答案!我有

attr_accessor :organizer, :contact_name, :last_name, :contact_email, :cellphone, :company, :office_phone, :website

以某种方式阻止了更新的发生,因此删除使更新保存到数据库。