0
需要一些建議。 我正在做一個RoR項目,不知道我應該使用哪些模型之間的關係。我有三種模型 - 用戶,電路板和消息。 一開始很簡單: 用戶有一個牆,它屬於用戶,所以我想這應該是:Ruby on Rails車型關係
class User < ActiveRecord::Base
has_one :board
end
class Board < ActiveRecord::Base
belongs_to :user
end
最後一個模型是消息和這纔是我的問題。消息屬於用戶原因,他寫它,但它也屬於牆,因爲他寫在牆上(它可以是屬於其他用戶的牆)。
我用了簡單的解決方案:
class Theme < ActiveRecord::Base
belongs_to :board
belongs_to :user
end
class User < ActiveRecord::Base
has_one :board
has_many :themes
end
class Board < ActiveRecord::Base
belongs_to :user
has_many :themes
end
但我不與它滿足了,覺得它是不完美的。我正在尋找一個解決方案,讓我寫這樣想:
user.themes.create(:board => @board)
(現在不補USER_ID場)
我希望這不會是一項艱鉅的任務對於那些誰更有經驗比我在Ruby on Rails模型中。我會很感激良好的意見,謝謝。
據我所知,使用這種寶石是一個很好的做法,但我已經有我從紅寶石採取的邁克爾·哈特爾Rails的教程簡單的用戶模型。我可以做你的建議,但是我正在尋找一種解決方案,在這種解決方案中,你的路線是不必要的,就像一個簡單的多對一關係一樣。感謝您的幫助 – leonprou
您需要添加一些處理此問題的行。沒有安全的選擇!因爲你可以添加一個提供user_id的隱藏字段,但是你可以通過用戶將控制權交給客戶端,因爲他可以操縱通過POST和GET提供的所有數據! – davidb
其實,意外的方式是我的解決方案按我的意願工作。感謝您的建議,我肯定會在將來實施它們。 – leonprou