Изменить логическое значение с помощью скрытого поля - PullRequest
0 голосов
/ 08 ноября 2018

Я добавил столбец MEMBER к USER .

Я пытаюсь изменить значение MEMBER на false через скрытое поле при отправке формы.

Но значение hidden_field не работает! Почему?

дб

class AddMemberToUsers < ActiveRecord::Migration[5.2]
  def change
    add_column :users, :member, :boolean, default: true
  end
end

пользователи / вид / форма

<%= form_for(resource, as: resource_name,:html => { :id => "new_user_1"}, url: registration_path(resource_name)) do |f| %>
        ...
        <%= f.hidden_field :member, value: false %>
        <%= f.submit "S'inscrire" %>
 <% end %>

Пользователи / registrations_controllers

class Users::RegistrationsController < Devise::RegistrationsController  
  private
  def sign_up_params
    params.require(:user).permit(:name, :fullname, :email, :password, :password_confirmation, :member)
  end

  def account_update_params
    params.require(:user).permit(:name, :fullname,:avatar,:job, :email, :password, :password_confirmation, :current_password)
  end
end

Спасибо за вашу помощь

1 Ответ

0 голосов
/ 08 ноября 2018

hidden_field ведет себя как скрытый text_field, следовательно, он ожидает строковое значение. Я бы посоветовал вам передать текстовое значение, которое вы можете считать ложным внутри контроллера.

либо используйте значения 0/1

OR

другим способом будет:

пример:

def sign_up_params
  params[:user][:member] = params[:user] && params[:user][:member] == '0' ? false : true
  params.require(:user).permit(:name, :fullname, :email, :password, :password_confirmation, :member)
end

вы можете справиться с этим вручную внутри вашего контроллера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...