9得票1回答
ActiveStorage能否在上传完成前为直接上传创建一个blob并将其附加到模型?

我正在创建一个API,包括一个文件上传服务,用户可以在其中输入额外信息,存储在Project模型中。当客户端请求直接从服务器上传时,我希望同时创建一个新项目并将Blob附加到S3上传过程中。但是,ActiveStorage似乎不允许在S3中不存在Blob的情况下附加它。 我考虑了几种不同的选...

10得票3回答
将方法委托给has_many关联会忽略预加载

在Rails中,是否可以将一个方法委托给has_many关联,并仍然保存该关联上预加载的数据,同时遵循迪米特法则?目前对我来说,你被迫选择其中一个。也就是说:通过不委派来保留预加载数据,或者失去预加载数据并委派。 例如:我有以下两个模型:class User < Application...

50得票5回答
Rails:仅在创建时验证,或在更新时字段不为空时进行验证

如何将Rails验证限制为仅在创建时检查或当字段不为空时检查?我正在为我正在开发的应用程序创建用户设置页面,问题是,在使用表单提供的参数进行更新时,只有同时存在密码和密码确认时才能保存设置。我希望这些密码字段无论如何都在创建时验证,但仅在更新时提供时才验证。

97得票2回答
在Rails 4中使用has_many :through :uniq时出现弃用警告

Rails 4在使用has_many :through时,使用:uniq => true会出现弃用警告。例如: has_many :donors, :through => :donations, :uniq => true 产生如下警告: DEPRECATION WA...

12得票4回答
在Ruby on Rails 3.2.14 / Ruby 2.0.0 / PostgreSQL 9.2.4中,使用activerecord从序列中检索下一个值。

这应该非常简单。我想要检索序列的nextval……它不是默认值……也不是主键……也不是外键。在极少数情况下,我需要为用户提供的值生成序列号。 我尝试了以下方法:@nextid = ActiveRecord::Base.connection.execute("SELECT nextval('x...

393得票5回答
Rails中使用NOT NIL的where条件

如果使用 Rails 3 的风格,我该如何编写与以下代码相反的功能:Foo.includes(:bar).where(:bars=>{:id=>nil}) 我想找到id不为nil的地方。 我尝试过:Foo.includes(:bar).where(:bars=>{:id=&g...

15得票2回答
在Rails中只覆盖默认作用域(特别是顺序)而不影响其他内容。

基本上,我有两个类,Book 和 Author。书可以有多个作者,作者也可以写多本书。书有以下默认范围。 default_scope :order => "publish_at DESC" 在作者页面上,我想列出与该作者相关的所有书籍,因此我会这样说... @author = A...

18得票2回答
ActiveRecord / Ruby on Rails 中的 update_all() 方法返回什么值?

Ruby on Rails和ActiveRecord文档、Google和StackOverflow都对update_all()的返回值保持了阴谋般的沉默。 update_all()会返回什么? 记录数? 成功状态? 更新记录的ID?

7得票1回答
如何使用联结表创建多模型标签云?

我有一个连接表 create_table "combine_tags", force: true do |t| t.integer "user_id" t.integer "habit_id" t.integer "valuation_id" t.integer "goal_...

7得票2回答
使用rspec-rails测试一个不带数据库的Rails 5应用程序

我有一个Rails 5.0.1 应用程序,没有任何数据库支持。尝试编写控制器测试时,即使我已经明确地配置了我的spec/rails_helper.rb不使用ActiveRecord并删除了config/application.rb中的active_record引用,我仍然会遇到ActiveRe...