2014-09-29 2 views
0

Я очень новое в рельсах я построил форму из моей модели @userОбновление модели в рельсах 4

это мой контроллер пользователя

def me 
@user = User.find_by_id(current_user.id) 

if !params.empty? 
    @user.update_attributes params[:user] 
end 
end 

Но я получаю эту ошибку:

ActiveModel :: ForbiddenAttributesError

это моя модель:

class User < ActiveRecord::Base 
    # Include default devise modules. Others available are: 
    # :confirmable, :lockable, :timeoutable and :omniauthable 
    devise :database_authenticatable, :registerable, 
     :recoverable, :rememberable, :trackable, :validatable 

    private 

    def user_params 
    params.require(:user).permit(:name, :surname, :email, :phone, :mobile) 
    end 
end 

Я попытался определить здесь в "обновить" метод, но я получаю ошибки как это:

ActiveModel :: ForbiddenAttributesError

Любая идея?

+0

Попробуйте добавить: Id к вашим разрешенным параметрам в начале – Richlewis

+0

И эти разрешенные параметры должны быть действительно в контроллере – Richlewis

ответ

0

Ok так несколько вещей здесь

Ваш метод обновления должен выглядеть следующим образом

def me 
    @user = current_user.find_by(params[:Id]) 

end 

Вам необходимо иметь свой разрешенный Params в контроллере, и добавьте: Id к тем Params

Поскольку вам кажется, что вы используете его, вам нужно будет сделать свой собственный пользовательский контроллер наследованием от контроллера разработки, чтобы вы могли переопределить разрешенные парамеры

Посмотрите в документах разработки о том, как переопределить контроллер, поскольку его действительно просто

+0

спасибо, что вы ввели разрешение в мой контроллер решение –

Смежные вопросы