Tag: association

Rails,Polymorphic Association – 仅渲染关联实例

我正在尝试学习如何在我的Rails 5应用程序中使用多态关联。 我有一个名为Organization,Proposal和Package :: Bip的模型。 协会是: 组织 has_many :bips, as: :ipable, class_name: Package::Bip accepts_nested_attributes_for :bips, reject_if: :all_blank, allow_destroy: true 提案 has_many :bips, as: :ipable, class_name: Package::Bip accepts_nested_attributes_for :bips, reject_if: :all_blank, allow_destroy: true 套票:必必 belongs_to :ipable, :polymorphic => true, optional: true, inverse_of: :bip Package :: Bip可以与Organization或Proposal相关联。 我正在努力弄清楚如何在我的提案节目中展示仅属于提案的Package :: Bips,以及组织中的提案。 我的package :: bip表有以下两列: # ipable_id :integer # […]

与Chartkick和Rails的关联

我想使用chartkick创建记录的折线图,这些记录属于计划任务。 换句话说: plantask has_many records 记录有两个我对图形感兴趣的字段。 created_at(将是我的X轴)和数据(整数),它将是我的Y轴。 到目前为止,我已经非常接近了。 通过将此插入我的视图: 我可以看到我的x轴显示完美。 但是,似乎y轴没有加载records:created_at字段,而是从plantask模型中加载:created_at。 (我的所有记录都映射到昨天晚上7点)这对我来说似乎很奇怪。 关于我搞砸了什么的任何提示? 谢谢你们。

通过关系更新rails has_many

我有模特 class Agency < ActiveRecord::Base has_many :specializations has_many :cruise_lines, through: :specializations end class CruiseLine < ActiveRecord::Base has_many :specializations has_many :agencies, through: :specializations end class Specialization < ActiveRecord::Base belongs_to :agency, inverse_of: :specializations belongs_to :cruise_line, inverse_of: :specializations end 我想更新Specialization集合(即删除一些旧的关系,并在需要时添加一些新的)。 我应该更新关系的方法看起来像这样(在一些单独的服务中): def self.update_agency_specializations(agency, params) attributes = params.require(:agency).permit( { cruise_line_ids: [] } ) attributes[:cruise_line_ids].select{ |x| x.to_i > 0 }.each […]

关于Rails中正确关联的问题

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

Ruby on Rails加入表关联

我有一个Ruby on Rails应用程序设置如下: 用户模型 has_and_belongs_to_many :roles 榜样 has_many :transactions has_and_belongs_to_many :users 交易模型 belongs_to :role 这意味着使用名为roles_users的连接表,这也意味着用户只能看到通过角色分配给它们的事务,用法示例: user = User.find(1) transactions = user.roles.first.transactions 这将返回与分配给用户的第一个角色关联的事务。 如果用户分配了2个角色,那么为了获得与第二个角色关联的事务,我会这样做: transactions = user.roles.last.transactions 我基本上试图找出一种设置关联的方法,这样我就可以根据用户和角色之间关联中定义的角色通过类似的方式获取用户的事务: user = User.find(1) transactions = user.transactions 我不确定这是否可行? 我希望你明白我想做什么。

使用关联rails找到最大值的正确方法

我有以下型号: #equipment.rb class Equipment < ActiveRecord::Base belongs_to :odometer_type has_many :odometers end #odometer.rb class Odometer equipment.id).max(:mileage) end end 在视图中看起来更糟糕,如下所示: = @equipment.odometers.current_reading(@equipment) 我认为应该有更好的方法来做到这一点,但我似乎无法提出或找到任何东西。 老实说,我甚至不确定如何搜索这样的东西。 谢谢你的帮助。

如何查找has_many关联数为零的所有记录?

假设您有以下has_many关联的Question模型:(来自此插件的示例) has_many :comment_threads, :class_name => “Comment”, :as => :commentable, :dependent => :destroy 如何定义返回没有相关注释的问题的范围或类方法? 基本上我想要Question.unanswered返回所有问题,零评论。

Rails4 has_many通过参数

我有一个has_many through协会如下: has_many :bookmarks, -> {where(‘actions.bookmark=true’)}, :through => :actions, :source => :object 我想要做的是扩展上面的内容以传递被加标签的对象的类别。 类似于以下内容: has_many :bookmarks, -> (category) {where(‘actions.bookmark=true and objects.category=?’, category)}, :through => :actions, :source => :object 我希望它能让我进行诸如user.bookmarks(“papers”) 。 但是,当我尝试以上操作时, category采用# (基本上是上面调用中的user ),我似乎无法用简单的字符串调用关联。 有关如何实现这一目标的任何建议? 非常感谢。

rails has_many setter应该设置条件,如果指定的话

这对我来说似乎是Rails中的一个错误,但我可能做的不多。 那么我怎样才能达到预期的行为呢? 假设我们有: class User “Friend”, :conditions => {:awesome => true} end 并执行代码: >> my_user.awesome_friends <‘jim’) 之后,当我检查这个朋友对象时,我看到填充了user_id字段。 但我也希望看到“真棒”这个“真棒”列,但事实并非如此。 此外,如果我从控制台执行以下操作: >> my_user.awesome_friends <‘jim’) >> my_user.awesome_friends = [#] # Quit and restart the console >> my_user.awesome_friends = [] 有什么想法吗? 我认为条件哈希可能是任意复杂的,使得集成到setter中是不可能的。 但在某种程度上,我们感觉默认情况下我们传递的条件是“:user_id => self.id”,并且设置已经设置,其他人不应该这样做吗? 谢谢,迈克 编辑: 我发现has_many有回调,所以我想我可能会定义这样的关系: has_many :awesome_friends, :class_name => “Friend”, :conditions => {:awesome => true}, :before_add […]

我无法使用accepts_nested_attributes_for创建模型对象。 它不会创建嵌套对象

我的模型结构如下所示: 董事会has_many主题。 主题has_manypost。 应用程序/模型/ board.rb class Board < ActiveRecord::Base has_many :topics end 应用程序/模型/ topic.rb class Topic < ActiveRecord::Base belongs_to :user belongs_to :board has_many :posts accepts_nested_attributes_for :posts validates :title, presence: true, length: { maximum: 255 } validates :user_id, presence: true validates :board_id, presence: true … end 应用程序/模型/ post.rb class Post < ActiveRecord::Base belongs_to :user belongs_to :topic […]