- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
active-record 中有一个方便的动态属性,称为 find_or_create_by:
Model.find_or_create_by_<attribute>(:<attribute> => "")
但是如果我需要通过多个属性来 find_or_create 该怎么办?
假设我有一个模型来处理组和成员之间的 M:M 关系,称为 GroupMember。我可能有很多 member_id = 4 的实例,但我不希望有多个 member_id = 4 和 group_id = 7 的实例。我试图弄清楚是否可以做这样的事情:
GroupMember.find_or_create(:member_id => 4, :group_id => 7)
我意识到可能有更好的方法来处理这个问题,但我喜欢 find_or_create 想法的便利性。
最佳答案
多个属性可以用and
连接:
GroupMember.find_or_create_by_member_id_and_group_id(4, 7)
(如果您不想立即保存记录,请使用find_or_initialize_by
)
编辑:上述方法在 Rails 4 中已弃用。新的方法是:
GroupMember.where(:member_id => 4, :group_id => 7).first_or_create
和
GroupMember.where(:member_id => 4, :group_id => 7).first_or_initialize
编辑2:并非所有这些都是从 rails 中提取出来的,只是属性特定的。
https://github.com/rails/rails/blob/4-2-stable/guides/source/active_record_querying.md
示例
GroupMember.find_or_create_by_member_id_and_group_id(4, 7)
成为了
GroupMember.find_or_create_by(member_id: 4, group_id: 7)
关于ruby-on-rails - Rails find_or_create_by 多个属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3046607/
我正在使用 @current_device ||= Device.find_or_create_by!(udid: request.headers["udid"]) 有时会出现竞争条件,由于网络行为,
我想向我的 Controller 提交一个产品 ID 和一个零售商 ID,如果数据库中存在该组合,我想用提交的参数更新该记录,如果不存在,则创建一个新记录。 我的 Controller 在下面,目前我
我正在创建一个 Rails 库应用程序,其中流派 has_many书和一本书belongs_to一种流派。我需要使用表单对象,因为我的数据模型最终会有多个多对多关系,并且因为我想学习如何使用表单对象。
我想像这样的查询。 Movie.find_or_create_by_title(title: 'foo').photos.find_or_create_by_name(name: 'bar') 给定的
当使用 Rails 方法 find_or_create_by 时,它属于模型还是 Controller ?我很难理解如何实际实现此方法。 我希望我的 Rails 应用程序接受来自用户的 JSON 消息
active-record 中有一个方便的动态属性,称为 find_or_create_by: Model.find_or_create_by_(: => "") 但是如果我需要通过多个属性来 fin
Mongoid 提供方法 create 和 create!比如 Artist.create(name: "Pablo Picasso") 或 Artist.create!(name: "Pablo P
我正在尝试使用 ActiveRecord 的 find_or_create_by 方法,我需要返回记录的 ID。当此方法创建新记录时,会发生这种情况。但是,如果记录已经存在,则 ID(连同 creat
我有一个user 模型和一个town 模型。一个用户属于一个城镇: # models/user.rb class User prohibited this user f
我正在使用这段代码: item = Item.find_or_create_by(:name => title.strip) if item.changed? results.newItemsC
我正在关注 http://railscasts.com/episodes/102-auto-complete-association 一切似乎都很好。我正在尝试即时创建发票和客户。它确实有效。一切都很
是否可以使用动态查找/创建方法跳过验证? 例如,对于常规保存,我可以执行以下操作: p = Post.new p.title = nil p.body = nil p.save(:validate =
我有一个使用 Mongoid 的 find_or_create_by 方法的网络应用程序。 poll = Poll.find_or_create_by(fields) 在我们投入生产之前,我尝试运行故
在 mongoid 中使用 find_or_create_by 时有没有办法处理并发? 我正在使用 Tag.find_or_create_by(name: "foo") 来标记我的应用程序中的一些项目
假设我有一个名为Task 的模型。我想find_or_create_by一些任务。 t = Task.where(done: false).find_or_create_by(title: 'epic
我在使用 find_or_create_by 时遇到问题在 has_many through协会。 class Permission :permissions end class User ha
我想使用 find_or_create_by,但此语句不起作用。它不会“查找”或“创建”其他属性。 productproperty = ProductProperty.find_or_create_b
我正在尝试运行一种方法,如果存在(表 Hashtag 列标签)标记,它会将 View 计数更新为 1。否则它将创建一个新行,默认 View 计数为 0 并且标记为 @hashtag scrubbed
我有一个应该发送信息的表单。输入之一是“empresa_id”,它由一个集合表示。我已经在服务器中 checkin 了发送我想要的信息的表单。问题是当我运行 find_or_create_by 时,这
在我的 Rails 应用程序中,我想通过他们的电子邮件查找用户,或者如果用户不存在,则使用该电子邮件以及一些其他属性创建一个。是否有比下面的代码更简单的方法来执行此操作,也许使用 find_or_cr
我是一名优秀的程序员,十分优秀!