Rails has_and_belongs_to_many 的时候是否可以添加额外参数

zhbinx · 2014年07月18日 · 最后由 zhbinx 回复于 2014年07月18日 · 2025 次阅读

比如我有两个模型serverapp, 相互之间都是has_and_belongs_to_many的关系, 但是有这么一个场景: server 上的多个 app 是分别在不同的端口上的 这样migration创建的语句是:

def change
    create_table :apps_servers, :id => false do |t|
      t.references :app
      t.references :server
      t.integer :port
    end

    add_index :apps_servers, [:app_id, :server_id]
    add_index :apps_servers, [:server_id, :app_id]
  end

我的问题

model 里面

class Server
    has_and_belongs_to_many :apps #(此处是不是需要加个什么条件)
end

谢谢大家

guides 上说 不可行

貌似说的有点不准确,不应该叫参数,只是关联时有一个额外的信息而已……

这个就不能用 has_and_belongs_to_many

找到这句话:

(3)富关联: 
在 Rails 1.1 以前,你使用 push_with_attributes 来存储额外的属性到你的 habtm 连接表内。这样做会带来很多问题,包括随后不能更新属性。Push_with_attributes 现在不再使用了。如果你希望一个带有额外属性的富关联的话,使用连接模型。 

诶……以为可以偷懒……

需要 登录 后方可回复, 如果你还没有账号请 注册新账号