同一模型之间的两个 has_many 链接

2024-05-13

I have users其中有products通过 habtm 链接,该链接正在运行。

我想添加一个链接user模型和product模型,以跟踪creator该产品的(当然,谁并不总是拥有该产品)

但是当我写在我的user and product建立一个新的链接,应用程序搞砸了,因为我无法区分creator of a product来自(很多)的所有者products.

你能帮助我吗 ?这是我的模型:

class Product < ActiveRecord::Base
  belongs_to :group
  has_and_belongs_to_many :authors
  has_and_belongs_to_many :users   # THIS IS OK (with appart table)
  has_many :users, :as => creator  # THIS LINE DOES NOT WORK AT THE MOMENT
end

class User < ActiveRecord::Base
  has_and_belongs_to_many :products
  belongs_to :user                 # THIS LINE DOES NOT WORK AT THE MOMENT
  default_scope :order => "username ASC"
end

数据库没问题,我可以将 user_id 存储在我的产品的创建者列下,但是链接产品.创建者.名称不起作用(我认为是因为模型不正确),我只能读取列中的 user_id,但无法获取具有所有属性的用户对象。

rem : 用户.产品工作完美,但只有当我删除创建者的新链接时......

Thanks !


The :as语法用于多态关联 - 这不是您想要的。您对列名的评论有点含糊,所以我假设您有一个user_id列在你的products表是该产品的创建者的 id(我只包括相关关联)...

class Product < ActiveRecord::Base
  has_and_belongs_to_many :users
  belongs_to :creator, :foreign_key => :user_id, :class_name => "User"
end

class User < ActiveRecord::Base
  has_and_belongs_to_many :products
  has_many :owned_products, :class_name => "Product"
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

同一模型之间的两个 has_many 链接 的相关文章

  • 如何在Rails中使用jquery tokeninput?

    我正在尝试在我的应用程序的表单中添加 tokeninput jquery 字段 该字段允许用户发布状态更新 我希望用户能够将作品 单独的模型 附加到状态更新中 我正在使用 act as taggable on gem 并且我的查询指定标签上
  • Ruby on Rails 两个同时创建两个不同控制器的操作

    我有一个线程控制器和消息控制器 线程 has many 消息 用户单击发送后 我将数据发送到线程控制器以创建线程 我想做到这一点 线程控制器 rb def create if thread save send data into messa
  • 处理铁路中 STI 子类路线的最佳实践

    我的 Rails 视图和控制器散布着redirect to link to and form for方法调用 有时link to and redirect to它们链接的路径是明确的 例如link to New Person new per
  • 从 Ruby on Rails 应用程序运行 phantomjs

    我有兴趣使用幻影 http www phantomjs org 我想从我的 Ruby on Rails 应用程序运行它 然而 这是一个命令行工具 即我需要运行类似phantomjs rasterize js http raphaeljs c
  • 将对象转换为哈希,然后将其保存到用户的列

    找不到任何接近我想做的事情 我想将一个对象存储到用户的列中 该列采用数组的形式 postgres def change add column users interest string array true default end 我有另一
  • 如何避免 nginx“上游发送太大的标头”错误?

    我正在运行 nginx Phusion Passenger 和 Rails 我遇到了以下错误 upstream sent too big header while reading response header from upstream
  • Rails 中 WHERE 子句中的 ALL 运算符

    关联关系如下图所示 InstructorStudent has many fees Fee belongs to instructor student 我想要获得在所有给定数组中具有每月详细信息的指导学生 如果其中任何一个中不存在每月详细信
  • heroku 上的 bitbucket 私有存储库

    我有一个需要 gem 的 Rails 应用程序 我将这个 gem 托管在私有存储库的 bitbucket 上 在我的 Gemfile 中 我添加了 gem 如下所示 gem my gem git gt gi email protected
  • 处理 Rails 2.1.x 中的 RoutingError 的最佳方法?

    我正在使用Rails 2 1 中的routing rb 代码 并尝试让它达到这样的程度 我可以对找不到合适路径时抛出的RoutingError 异常执行一些有用的操作 这是一个有点棘手的问题 因为有一些 URL 类别纯粹是糟糕的 azenv
  • Rails autoload_paths 中的错误?

    我的代码中遇到一个奇怪的错误 我有一个 Rails 应用程序 库中有以下两个文件 lib module one module two class one rb module ModuleOne module Moduletwo class
  • 如何将枚举作为字符串存储到rails中的数据库中

    如何在 ruby 中创建迁移 其中默认值是字符串而不是整数 我想将枚举存储到数据库中 但我不想将其存储为整数 因为这样对于另一个应用程序来说没有意义想要使用同一张桌子 我该怎么做default female 代替default 0 clas
  • 以 Rails 形式处理 MongoMapper EmbeddedDocument

    首先 我对一般编程和 Rails 都是新手 我选择 Rails 是因为它看起来是一种很容易上手的语言 对于我的项目 我将 MongoMapper 与 Rails 结合使用 我正在尝试以与文档相同的形式处理嵌入文档 我有以下模型 class
  • Ruby:创建日期范围

    我正在寻找一种优雅的方式来制作一系列日期时间 例如 def DateRange start time end time period end gt gt results DateRange DateTime new 2013 10 10 1
  • 如何从 Rails 项目中删除 gem?

    我正在尝试从我的项目中删除一个 gem 因此我进入了 gem 文件并将其注释掉 gem some gem gem gem I dont want gem another gem 然后我跑 bundle 为了检查宝石是否消失 我输入 bund
  • 查询,无法选择列数

    Tag joins quote tags group quote tags tag id order count desc select count tags id AS count tags id tags name Build quer
  • Rails3 has_many 关系中子项计数的范围

    尝试在rails3中做一个范围 book has many chapters 我想要 range long 返回超过 10 章的书籍 如何最好地构建这个范围 不使用计数器缓存 thanks 这应该会让你继续 class Book scope
  • rspec 测试 has_many :through 和 after_save

    我有一个 我认为 相对简单的has many through与连接表的关系 class User lt ActiveRecord Base has many user following thing relationships has ma
  • 从标记访问 json 属性 - gmaps4rails

    我正在升级到 gmaps4rails v2 我似乎无法从 javascript 访问标记 json 属性 这在我使用的先前版本 1 5 6 中有效 具体来说 内置控制器 users User all hash Gmaps4rails bui
  • 合并两个ActiveRecord数组并按created_at排序

    books Book find all articles Articles find all 通过阅读来自http guides rubyonrails org layouts and rendering html http guides
  • Rails Structure.sql 和 schema.rb 之间有什么区别

    我知道 schema rb 文件是一个 ruby 文件 它是在运行 rake 迁移时创建和修改的 但是 Structure sql 呢 我在一些项目中看到了 schema rb 在其他项目中看到了 Structure sql 以及在一些这两

随机推荐