2017-01-20 14 views
0

Это то, что я пытаюсь сделать здесь. Я вызываю функциональный тест от пользовательского контроллера. и внутри тестовой функции я инициализирую новый объект статьи следующим образом: article = new Article. Но это дает мне ошибкуСильная ошибка параметра при создании нового объекта

ArgumentError in UsersController#create 
When assigning attributes, you must pass a hash as an argument. 

Я следующий код

users_controller

def create 
User.test 
end 

private 
def user_params 
    params.require(:user).permit(:name, articles_attributes:[:content) 
end 

модель пользователя

class User 

def self.test 
    article = new Article 
    article.attributes = {"content"=>"this is some sample content"} 
    article.save 
end 

end 

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

+0

Как 'статья = новый Article' даже работает? О, я вижу. его вызов «Class # new», а затем передача в определение класса самого себя ... поэтому он компилируется. но он все еще не делает то, что вы считаете. Попробуйте 'article = Article.new' –

ответ

0

Как работает article = new Article? О, я вижу. его вызов Class#new, а затем передается в определении класса самого себя ... поэтому он компилируется. но он все еще не делает то, что вы считаете. Попробуйте article = Article.new

Кроме того, ваше задание в модели пользователя не имеет никакого отношения к контроллеру user_params метода, который дезинфицирует ваши параметры