我有这个模型:classStudent如果我在我的movies_controller.rb中写这个:@students=@movie.cinema.companies.students.all我有这个错误:#Company::ActiveRecord_Associations_CollectionProxy:0x00000007f13d88的未定义方法“学生”>如果我这样写:@students=@movie.cinema.companies.find(6).students.all它向我显示了我的select_collection中的正确学生。如何更好地理解这个过程?更新:我需要这部电
我无法安装任何引擎。从指南安装第一个事件引擎后,我收到一条错误消息,提示我没有有效的gem规范。Usingrefinerycms-events(1.0)fromsourceatvendor/extensionsrefinerycms-eventsat/Users/lydia/Desktop/projects/cmsex/vendor/extensions/eventsdidnothaveavalidgemspec.Thispreventsbundlerfrominstallingbinsornativeextensions,butthatmaynotaffectitsfunctiona
我有一个用户模型和一个友谊模型。classFriendship'User',:foreign_key=>'sender_id'belongs_to:receiver,:class_name=>'User',:foreign_key=>'receiver_id'validates_presence_of:receiver_id,:sender_idvalidates_associated:receiver,:senderendclassUser"Friendship",:foreign_key=>"sender_id",:dependent=>:destroyhas_many:recei
我将以下代码放入RSpec测试中:it{shouldvalidate_format_of(:email).not_with('test@test')}并设置实际的类:validates:email,:presence=>true,:format=>/\b[A-Z0-9._%-]+@(?:[A-Z0-9-]+\.)+[A-Z]{2,4}\b/i当我运行测试时,我得到:失败:1)用户失败/错误:它{应该validate_format_of(:email).not_with('test@test')}当电子邮件设置为“test@test”时,预期错误包括“can'tbeblank”,得到错误
在我将此作为错误发布给Rails团队之前,我想看看我是否做错了可能导致此行为的事情。具体来说,has_many关联的:autosave属性似乎没有按照文档工作。作为引用,这里是最新的API文档:http://api.rubyonrails.org/classes/Acti...ation.html查看“一对多示例”部分。我已经在测试应用程序中完全复制了代码,但它对我不起作用。具体来说,更新父对象,但不更新子对象。我的架构如下:create_table:postsdo|t|t.string:titlet.timestampsendcreate_table:commentsdo|t|t.t
每当我实例化一个新的ActiveRecord模型(一个尚未持久化到数据库中的模型)并尝试访问构建模型上的一些各种关联时,Rails查询构建器有时会:将(1=0)谓词添加到查询的where子句。在select语句中添加“distinct”子句。我认为这只会在has_many:through关联连接两个或多个表时发生。我想知道为什么它添加了(1=0)谓词以及distinct子句。对于(1=0)谓词,新模型是否已保存到数据库应该无关紧要(对吧?)。我不知道为什么要添加distinct子句。我在下面有一个简单的例子。classAssignment#s.assignment_attachment
我正在尝试使用pg_search来搜索关联模型。当我运行搜索时,出现错误“PG::Error:ERROR:columnplans.namedoesnotexist”。我正在“计划”模型中运行搜索,并尝试针对“地点”与列“名称”的关联进行搜索。连接这些的has_many:through模型是多态的。不知何故,sql查询将两者结合起来并抛出错误。我已经运行了associated_against迁移(railsgpg_search:migration:associated_against),搜索了文档,并寻找其他有错误的人,但一无所获,一定是我只是忽略了一些东西。如果我只是删除plan.rb
有没有办法在保存时跳过更新与:touch关联的关联?设置:classSchool我希望能够在跳过触摸的地方执行如下操作。@school=School.create@student=Student.create(school_id:@school.id)@student.name="Trevor"@student.save#CanIdothiswithouttouchingthe@schoolrecord?你能做到吗?像@student.save(skip_touch:true)这样的东西会很棒,但我还没有找到类似的东西。我不想使用像update_column这样的东西,因为我不想跳过A
以下代码确保选择的time_zone在ActiveSupport::TimeZone.us_zones中的时区内:validates_inclusion_of:time_zone,in:ActiveSupport::TimeZone.zones_map(&:name)在Rails4.0中表现出色。刚刚升级到Rails4.1,我的索引页面上出现了这个错误(所以只是简单地查看模型):Anobjectwiththemethod#include?oraproc,lambdaorsymbolisrequired,andmustbesuppliedasthe:in(or:within)option
我是否必须保存对模型集合中单个项目的修改,或者是否有一种方法可以在我保存模型时调用以保存它们。#save似乎没有这样做。例如:irb>rental=#...#=>#irb>rental.dvd#=>#,sale_price:#>irb>rental.dvd.copies+=1#=>21irb>rental.save#=>trueirb>rental.dvd#=>#,sale_price:#>irb>Dvd.find_by_title('TheWomenofSummer')#=>#,sale_price:#>在上面的例子中,租赁的DVD副本似乎没有更新数据库中的副本(注意不同的副本数)。