我正在关注Ryanb'spolymorphicassociationvideo以实现评论系统。但是,我正在使用嵌套资源,需要一些帮助我模仿了视频中的大部分内容,但不是这个:defload_commentableresource,id=request.path.split('/')[1,2]@commentable=resource.singularize.classify.constantize.find(id)end我这样做了:defload_commentable@commentable=params[:commentable].classify.constantize.find(
我正在编写一些使用多个自引用模型的代码,我希望能够使用连接表进行匹配,因为它们是通过连接表关联的。模型看起来像用户.rb:classUser约会.rb:classAppointment不幸的是,Rails生成的查询是:SELECT"users".*FROM"users"INNERJOIN"appointments"ON"users"."id"="appointments"."student_id"WHERE"appointments"."user_id"=$1这会引发错误,因为Appointment没有user_id参数。我已经尝试指定foreign_key选项,但这没有任何作用。还有
我很难弄清楚如何制作一个form_object,它为has_many与virtusgem的关联创建多个关联对象.下面是一个人为的例子,其中表单对象可能有点矫枉过正,但它确实显示了我遇到的问题:假设有一个user_form对象创建一个user记录,然后是一对关联的user_email记录。以下是模型:#models/user.rbclassUser我继续创建一个表单对象来表示用户表单:#app/forms/user_form.rbclassUserFormincludeActiveModel::ModelincludeVirtus.modelattribute:name,Stringat
我看到.where语句使用大量CACHEUserLoad消息发出大量请求而不是关联。这是真的还是假的?在这种情况下,我得到一个ActiveRecord_Relation:@dogs=Dog.where(user_id:current_user.id).order('created_atDESC')在另一种情况下,我得到一个ActiveRecord_Associations_CollectionProxy:@dogs=current_user.dogs.order('created_atDESC')当我在View中迭代时我在控制台日志中收到不同的消息:ActiveRecord_Relat
我有大量的律师、类别和子类别列表。提示(如果我的联想没问题,你可以得到线索)在类别表中,我不想在类别表中看到引用子类别的列。在子类别表中,我不想在子类别表中看到引用类别的列。并非所有类别都有子类别。即有些没有子类别,如图所示。我有2个单独的表单来创建类别和子类别。我将category_id和subcategory_id作为外键添加到我的lawyers表中。这样一来,我可以在创建时从律师表格中选择律师所属的类别或子类别。另请注意:可以随时为没有子类别的类别以及已有子类别的类别下的新子类别创建子类别,律师将被放置在它们下面.该图像是我目前拥有的索引/主页的副本,至少在上述第6条任何一天的任
我有两个事件记录模型classUser我想从activerecord关联中获取类Post的引用。user.posts.get_object_class目前我做的时候user.posts.class.to_s#Post::ActiveRecord_Associations_CollectionProxy有没有一种方法可以获取Post而不必“拆分”“::”上的字符串然后将其常量化? 最佳答案 使用model或klass属性-它将返回您要查找的常量:user.posts.model#=>Postuser.posts.klass#=>Pos
我正在尝试实现includes在has_many/belongs_to关联中类似于这个例子:classAuthor{includes:line_items}endclassBook当我执行@author.books时,我在控制台中看到它加载了Book和LineItem并显示了的记录>Book,LineItem没有记录。当我尝试@author.books.line_items时出现未定义方法错误。@author.line_items也不起作用。请问如何获取Author的LineItem记录?谢谢! 最佳答案 您需要为Author添加一
这是我的模型:classDeck这是我尝试的发现:DeckCard.all:joins=>[:card,:deck],:conditions=>{{:decks=>{:game_id=>@game.id}},{:cards=>{:present=>true}}}我不断收到错误消息:all的未定义方法#Class:0x4b2a98>。我假设这是解析我的条件的误导性错误。我正在遵循ActiveRecordQuery指南。我不确定是使用单数形式还是复数形式的关联。看起来像belongs_to,你应该在:joins散列中使用单数形式,但我不确定在:conditions散列中,所以我都试过了,但
我在模型中使用validates_associated来使用其他模型的验证代码。问题是验证失败的消息是“..无效”。我想将模型验证失败的实际描述性错误冒泡到顶部!我发现了这个问题:validatesassociatedwithmodel'serrormessage它有一个看起来非常接近的解决方案:moduleActiveRecordmoduleValidationsclassAssociatedBubblingValidatorvalue))endendendendendmoduleClassMethodsdefvalidates_associated_bubbling(*attr_n
我有两个类:classPost问题是是否有更好的方法来知道调用类方法的关联对象(post)的id。一种方法(上面使用的)是:post_id=self.new.post_id。我敢打赌有一种更简洁的方法,我不必为了获取post_id而创建对象。 最佳答案 直接回答你的问题,Comment.scope_attributes将返回Comment的当前范围将设置的那些属性的散列。您可以像这样测试关联对此的影响虽然我不确定我是否会使用它-拥有一个只能在特定形式的范围内调用的类方法似乎有点奇怪。 关