2016-03-16 2 views
0

Я добавил атрибут модели. Поле формы заполняется, но когда я отправляю его, он не вводит его в мою БД.Rails добавлен атрибут модели, не заполняющий форму

Поле Идентификатор роли:

enter image description here

Вы можете увидеть на следующей странице, что он не заполняет БД:

enter image description here

Я также подтвердил, из БД:

+----+--------+-------------------------+----------+---------+-------+---------------------+---------------------+---------+ 
| id | userid | email     | password | fname | lname | created_at   | updated_at   | roleids | 
+----+--------+-------------------------+----------+---------+-------+---------------------+---------------------+---------+ 
| 1 |  1 | [email protected] | test  | kendall | weihe | 2016-03-15 21:56:30 | 2016-03-15 21:56:30 | NULL | 
| 2 |  2 | [email protected] | test  | ken  | weihe | 2016-03-16 11:39:05 | 2016-03-16 11:39:05 | NULL | 
| 3 |  2 | [email protected] | test  | ken  | weihe | 2016-03-16 11:42:32 | 2016-03-16 11:42:32 | NULL | 
| 4 |  2 | [email protected] | test  | ken  | weihe | 2016-03-16 11:44:26 | 2016-03-16 11:44:26 | NULL | 
+----+--------+-------------------------+----------+---------+-------+---------------------+---------------------+---------+ 

Форма ввода выглядит следующим образом:

<div class="field"> 
    <%= f.label :lname %><br> 
    <%= f.text_field :lname %> 
    </div> 
    <div class="field"> 
    <%= f.label :roleids, "RoleID: 1 for Employee or 2 for Customer" %><br> 
    <%= f.number_field :roleids %> 
    <%debugger%> 
    </div> 
    <div class="actions"> 
    <%= f.submit %> 
    </div> 

отладчик помещен выше подтверждает, что атрибут существует:

действие
#<User id: nil, userid: nil, email: nil, password: nil, fname: nil, lname: nil, created_at: nil, updated_at: nil, roleids: nil> 

контроллер выглядит следующим образом:

def create 
    @user = User.new(user_params) 

    respond_to do |format| 
     if @user.save 
     format.html { redirect_to @user, notice: 'User was successfully created.' } 
     format.json { render :show, status: :created, location: @user } 
     else 
     format.html { render :new } 
     format.json { render json: @user.errors, status: :unprocessable_entity } 
     end 
    end 
    end 
+0

Это часто связано с сильными параметрами, вы используете их? Можете ли вы разместить соответствующие части своего контроллера? – Matt

+0

@Matt oops, добавлено –

+0

Что находится в методе 'user_params'? @Matt прав, самая простая ошибка заключается в том, что вы забыли добавить 'roleids' в метод' user_params'. –

ответ

1

проверить, как вы добавили roleids атрибут вашего сильного параметра в вашем контроллере:

def user_params 
    params.require(:user).permit(:email, :password, :password_confirmation, :fname, :lname, :roleids) 
end