Tag: has many through

使ActiveRecord连接模型属性在查询结果中可用

鉴于User和Book模型,我创建了一个包含其他属性的连接模型ViewedBook。 以下是我提出的内容的本质: create_table “users” t.string “username” end create_table “books” t.string “title” t.integer “user_id” t.date “authored_date” end create_table “books_viewings” t.integer “book_id” t.integer “user_id” t.boolean “finished” t.date “last_viewed_date” end class User belongs_to :book_viewing has_many :authored_books, :class_name => “Book”, :source => :book has_many :book_viewings has_many :viewed_books :through => :book_viewings :order => “book_viewings.last_viewed_date DESC” has_many :finished_books :through => :book_viewings […]

关于Rails中正确关联的问题

以这种情况为例。 你有3个型号: 诗人 – 代表一首诗的作者 诗 – 代表诗人写的一首诗 打印 – 表示包含诗人诗歌的任何类型的印刷出版物。 蝙蝠诗人和诗歌是显而易见的: 诗人有很多诗 诗歌belongs_to诗人 在处理Printing模型时,我会感到困惑。 在这种情况下,印刷在某种意义上属于诗人和诗。 你可以说一个诗人has_many印刷品或诗歌has_many印刷这是有道理的,但走向相反的路线是棘手的… 一些杂志或书籍从一位诗人那里打出5首诗的情况怎么样? 或者,其中一首诗出版在10种不同的杂志上? 几乎看起来印刷本身“属于许多”诗歌或诗人。 我知道这是错的,但我只想说清楚这一点。 所以可回答的问题是:你将如何建立这些关系? 具体来说,模型和数据库表的外观如何?如何使用它们来访问关联数据? 谢谢!

has_one:through => multiple

出席和担保: belongs_to :event belongs_to :account 因此:参加和保证之间的关系是1比1。 没有我太多的想法,有没有办法做到这一点? # attendment has_one :vouching :through => [:event, :account] 注意:实际上,我不介意想太多。

如何通过多个模型引用和更改额外值

我有通过piece_lineup模型加入的阵容和件模型(有很多通过)。 我在piece_lineup模型中添加了一个’status’列,但我无法弄清楚如何引用该属性和/或更改它。 列出与阵容相关联的作品时,我还想列出与该阵容相关的作品的状态。 我怎么做?

Ruby on Rails在保存之前通过关联对象具有很多function

在Ruby on Rails项目上,我试图在将所有内容保存到数据库之前访问ActiveRecord上的关联对象。 class Purchase < ActiveRecord::Base has_many :purchase_items, dependent: :destroy has_many :items, through: :purchase_items validate :item_validation def item_ids=(ids) ids.each do |item_id| purchase_items.build(item_id: item_id) end end private def item_validation items.each do |item| ## Lookup something with the item if item.check_something errors.add :base, "Error message" end end end end 如果我像这样构建我的对象: purchase = Purchase.new(item_ids: [1, 2, 3])并尝试保存它, […]

通过Active Admin使用HABTM或Has_many

我已经阅读了很多关于使用活动管理员与has_many通过关联的post,但我没有得到所需的结果。 基本上我有2个模型“会议”和“帐户”。 我需要为会议分配多个帐户,为帐户分配多个会议。 我使用HABTM或has_many对我来说无关紧要。 我只需要在创建新会议时能够看到下拉选择选项,反之亦然。 帐户模型 class Account :destroy has_many :conferences, :through => :conferenceaccount end 会议模式 class Conference :conferenceaccount end 会议账户模型 class Conferenceaccount < ActiveRecord::Base belongs_to :conference belongs_to :account attr_accessible :account_id, :conference_id end 会议管理模型 ActiveAdmin.register Conference do form do |f| f.inputs “Details” do # Project’s fields f.input :conferencename f.input :address f.input :city f.input :state f.input […]

rails 4 has_many:通过不保存关联

我有2个模型,有多对多关联如下: class User :destroy has_many :designated_remarks, :through => :remark_users, :source => :remark end class Remark :destroy has_many :users, :through => :remark_users accepts_nested_attributes_for :users end 和关系: class RemarkUser < ActiveRecord::Base belongs_to :remark belongs_to :user end 应该执行save的remarks_controller操作: # PATCH Save users def save_users @remark = Remark.find(params[:id]) @remark.users.build(params[:remark_user_ids]) @remark.save end forms: salveaza_responsabili_remark_path(@remark) do |f| %> Te remarks_controller: params.require(:remark).permit(:description, […]

动态创建has_many或habtm的after_add和after_remove回调?

有没有办法动态地将after_add和after_remove回调添加到现有的has_many或has_and_belongs_to_many关系? 例如,假设我有模型User , Thing和连接模型UserThingRelationship ,而User模型是这样的: class User :user_thing_relationships end 我希望能够在扩展User的模块中添加:after_add和:after_remove回调到User.has_many(:things, …)关系。 即,有类似的东西 module DoesAwesomeStuff def does_awesome_stuff relationship, callback # or however this can be achieved… after_add(relationship) callback after_remove(relationship) callback end end 以便 class User :user_thing_relationships does_awesome_stuff :things, :my_callback def my_callback; puts “awesome”; end end 实际上是一样的 class User :user_thing_relationships, :after_add => :my_callback, :after_remove => :my_callback def […]

如何查找记录,其has_many通过对象包括某些列表的所有对象?

我有一个典型的标签和任何对象关系:说 class Tag :tagazations end class Tagazation { :scope => :project_id } end class Project :tagazations end 这里没什么特别的:每个项目都有一个或多个标签。 该应用程序具有搜索function:您可以选择某些标签,我的应用程序应该显示所有标记有所有提及标签的项目。 所以我得到了一个必要的tag_ids数组,然后遇到了这么简单的问题

Rails:has_many有额外的细节吗?

虽然我不是一个完整的Ruby / Rails newb,但我仍然很绿,我正在试图弄清楚如何构建一些模型关系。 我能想到的最简单的例子是烹饪“食谱”的想法。 配方由一种或多种成分和每种成分的相关数量组成。 假设我们在所有成分的数据库中都有一个主列表。 这表明两个简单的模型: class Ingredient < ActiveRecord::Base # ingredient name, end class Recipe < ActiveRecord::Base # recipe name, etc. end 如果我们只想将食谱与成分相关联,那就像添加适当的belongs_to和has_many 。 但是,如果我们想将其他信息与该关系联系起来呢? 每个Recipe都有一种或多种Ingredients ,但我们想要指出Ingredient的数量。 什么是Rails模型的方式? 这是一个像has_many through一样的东西吗? class Ingredient < ActiveRecord::Base # ingredient name belongs_to :recipe_ingredient end class RecipeIngredient < ActiveRecord::Base has_one :ingredient has_one :recipe # quantity end class […]