2017-01-20 8 views
0

これは私がここでやろうとしていることです。私はユーザーコントローラから機能テストを呼び出します。テスト関数の内部では、このような新しい記事オブジェクトを初期化します。article = new Article。しかし、これは、私は、コード新しいオブジェクトを作成するときにパラメータにエラーが発生する

users_controller

def create 
User.test 
end 

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

Userモデル

私はこの質問を求め、多くの時間に答えてきた知っている
class User 

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

end 

しかし

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

次している私にエラーを与えます私は私の問題や解決策と一致する何かを見つけることができませんでした。だから、記事モデルオブジェクトをユーザモデルコールの中に保存する方法を教えてください。

+0

をサニタイズコントローラuser_params方法とは関係ありませんか?ああなるほど。 Class#new'を呼び出してクラス定義を渡してコンパイルします。しかしそれはまだあなたが思っていることをしていない。試して 'article = Article.new' –

答えて

0

article = new Articleはどのように機能しますか?ああなるほど。その呼び出しはClass#newであり、それからクラス定義を渡してコンパイルします。しかしそれはまだそれがあなたが思っていることをやっていない。またarticle = Article.new

を試してみて、Userモデル内のあなたの割り当ては `記事=新しいArticle`も取り組んでいますどのようにあなたのパラメータ

関連する問題