2016-12-04 10 views
1

私はRoRを初めて使い、モデルと関連付けを練習しています。私が使用して、レールのコンソールから一部のユーザーとオーダーを作成しましたレールコンソール経由でレコードを別のレコードに関連付ける

order = Order.create(body: "i'm a new order") 
user = User.create(name: "Borja") 

を、私は、例えば、特定のID(ポスト(と、ユーザーに特定のIDを持つポストを割り当てる方法を知っていただきたいと思います2 )がuser(1)に属しているので)、この関係のメソッドをrails consoleを使って調べることができます。

ありがとうございました!

モデル/ user.rb>

class User < ApplicationRecord 
    has_many :orders 
end 

モデル/ post.rb>

class Order < ApplicationRecord 
    belongs_to :user, optional: true 
end 
+1

'user.posts.create()'や 'Post.create(USER_ID:user.id)' 'user'は'ユーザー= User.first' – dp7

答えて

0
  • まず1がない場合は、(ユーザーを見つけたり、ユーザーを作成したいです存在する)。
  • 投稿を検索したい(存在しない場合)
  • 次に、適切なメソッドを呼び出して、ユーザーを投稿に関連付ける必要があります。

内部にmethods that User class gains when a has_many association is declaredを考えてください。

上記は、ユーザーを投稿に関連付けるのに最適な方法ではありませんが、最小限であり、関連付けの作業について考えさせるでしょう。

PS:質問の形式を正しく設定してください。このようにして、より多くの人々が動機づけられて答えるでしょう。

Good Luck!

+0

はありがとうございことができます!私は見てみましょう:) –

+0

あなたは@ BorjaOliveraを歓迎:) – Uzzar

1

あなたはクラスOrderを意図的に名前を付けたのですか、それとも間違っていますか?

あなたはorder.rbにファイル名を変更する必要があるか、Post

モデル/ user.rb

class User < ApplicationRecord 
    has_many :posts 
end 

モデル/ post.rb

にモデル名を変更する必要がありますどちらか
class Post < ApplicationRecord 
    belongs_to :user, optional: true 
end 

投稿をユーザースコープで作成する

user = User.find(1) 
user.posts.create(body: "some text") # user id will be passed automatically 

# or 

user = User.find(1) 
Post.create(user_id: user.id, body: "some text") 
関連する問題