Ruby on rails 3 需要帮助建立模型之间的关系吗
Rails新手正在为一个小项目苦苦挣扎。我正在为一个我喜欢的棋盘游戏创建一个简单的造船工具作为练习,我有点迷路了 我想做什么? -在创建我的船模型记录之后,我想创建将与船模型关联的Traits模型记录。更新船舶模型记录后,我想更新或创建将与船舶模型记录关联的特征模型 我试过什么? -将特征作为列变量添加到每个船舶模型记录中。我不认为这是存储我的每一个船模型特征的最有效的方法。我设置了一个Traits模型,但我不知道如何导航到它并将其与我的船模型关联 吃完后我想要什么? -存储在每个船舶模型记录中的数组,该数组将列出每个船舶的属性及其相应值 i、 e.如果 trait_list=[trait1=>t1,trait2=>t2,trait3=>t3,trait4=>t4] ship_traits=[t1,t4] 最后,我将能够在我的ship diagram页面上调用traits,而不必遍历每一个traits,仅仅是与当前模型相关的traits 我不知道应该如何在模型之间建立关联。任何关于我应该研究的方向的帮助或善意的建议都将受到热烈欢迎。我为我的含糊不清提前道歉,我又是一个完全的新手 干杯,Ruby on rails 3 需要帮助建立模型之间的关系吗,ruby-on-rails-3,Ruby On Rails 3,Rails新手正在为一个小项目苦苦挣扎。我正在为一个我喜欢的棋盘游戏创建一个简单的造船工具作为练习,我有点迷路了 我想做什么? -在创建我的船模型记录之后,我想创建将与船模型关联的Traits模型记录。更新船舶模型记录后,我想更新或创建将与船舶模型记录关联的特征模型 我试过什么? -将特征作为列变量添加到每个船舶模型记录中。我不认为这是存储我的每一个船模型特征的最有效的方法。我设置了一个Traits模型,但我不知道如何导航到它并将其与我的船模型关联 吃完后我想要什么? -存储在每个船舶模型记录中
尼克我不能100%肯定这会解决你的问题,但你可以这样做:
class Ship < ActiveRecord::Base
has_many :traits
accepts_nested_attributes_for :traits
end
class Trait < ActiveRecord::Base
belongs_to :ship
end
# In your form
- form_for @ship do |f|
- f.fields_for :traits do |ff|
= ff.label :trait_name
= ff.text_field :trait_name
# this will return all the traits for model defined as @ship
@ship.traits
class Ship
我知道它不是船模型中的数组,但我听说将模型中的列设置为数组有点棘手。如果你希望这些特质是独一无二的(就像在许多船上可以有许多特质,这些特质可以属于许多不同的船),那么你将拥有一种“有很多:通过”的关系。如果是这样的话,让我知道,我会再回答。或者你可以看看这个:Seanpat,我想这和我想要的非常接近,非常感谢。我尝试了这个,但收到一个错误,指出我的traits表没有ship.id列。所以我想我必须为此进行迁移。根据您的示例,关于关联基础知识的链接更有意义。再次感谢。