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