2016-12-04 98 views
1

我是RoR的新手,我正在練習模型和關聯。通過滑軌控制檯將一條記錄關聯到另一條記錄

我創建通過導軌控制檯使用一些用戶和訂單:

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

我想知道如何與某個ID後分配到一定的ID的用戶(例如,後(2 )屬於用戶(1)),所以我可以使用rails控制檯檢查這種關係的方法。

謝謝!

型號/ 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
  • 首先,你要找到一個用戶或創建一個用戶(如果不存在)。
  • 然後你想找到或創建一個帖子(如果它不存在)
  • 然後你想調用正確的方法來關聯用戶和帖子。

想想裏面的methods that User class gains when a has_many association is declared

以上不是將用戶與帖子相關聯的最佳方式,但它是最低限度的,並且會讓您考慮關聯關係的工作。 PS:確保你正確地設置你的問題的格式。這樣更多的人會被激勵回答。

祝你好運!

+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")