草庐IT

through_model

全部标签

ruby-on-rails - rails : How to observe join records that don't actually have a Model?

是否可以使用Observer来观察JOIN记录的创建?例如,您有一个用户模型has_and_belongs_to_manyBookModels。是否可以在创建或删除books_users记录时监控它们,或者我必须有BookUser模型才能执行此操作?我想观察的例子:User.books或User.books.push(book)或随便!谢谢,戴夫·K。 最佳答案 这就是您应该使用has_many:through而不是has_and_belongs_to的确切原因;它允许您创建一个BookUser模型,其中可以使用常规的activer

ruby-on-rails - ruby rails : Using shovel operator to update a string attribute on a model does not make the model dirty

今天我们遇到了一个有趣的问题。似乎如果您使用shovel运算符连接ActiveRecord模型上的字符串属性,它不会使模型变脏。例如:e=Employee.firste.name这是有道理的,因为shovel运算符更新字符串而不复制它,而+=运算符将复制字符串。如果您使用shovel运算符,我不明白ActiveRecord怎么可能知道发生了什么变化。有没有人看过这个?是只使用+=的解决方案吗?而不是连接字符串时? 最佳答案 解决方案是您编写。或者你可以在此之前标记你的态度will_changee=Employee.firste.na

ruby-on-rails - Rails 路由无法使用资源 :model

在我的Rails3.1应用程序中,我有一个名为“Child”的模型在我的routes.rb文件中,我有一行:resources:children这是整个routes.rb文本:root:to=>"pages#home"resources:children这里是完整的rake路由结果(注意大部分路由都与ActiveAdmin相关):childrenGET/children(.:format){:action=>"index",:controller=>"children"}POST/children(.:format){:action=>"create",:controller=>"ch

ruby-on-rails - rails : create scaffold for models to inherit from superclass?

我是Rails的新手,我的脚还很湿,所以如果这是微不足道的或“错误的方式”做事,请原谅我。我想为一些脚手架模型创建一个父类(superclass)。例如,我想为Men和Women创建一个脚手架,但我希望它们都继承自People父类(superclass);Men和Women会从People类继承height和weight等字段。我在哪里/如何定义这个People父类(superclass)?如何通过脚手架定义子类Men和Women? 最佳答案 通常我会这样做:railsgscaffoldPeopletype:stringname:s

ruby-on-rails - 使用 has_many :through 时如何访问 Rails 连接模型属性

我有一个类似这样的数据模型:#columnsincludecollection_item_id,collection_id,item_id,position,etcclassCollectionItem:collection_items,:source=>:collectionendclassCollection:positionhas_many:items,:through=>:collection_items,:source=>:item,:order=>:positionend一个项目可以出现在多个集合中,也可以在同一个集合中的不同位置出现不止一次。我正在尝试创建一个辅助方法来创

ruby-on-rails - 在 has_many :through association, 用 lambda 替换条件

我有这个关联:has_many:foo_participators,through::foos,source::user,conditions:"foos.state='completed'"Rails告诉我:DEPRECATIONWARNING:ThefollowingoptionsinyourBar.has_many:foo_participatorsdeclarationaredeprecated::conditions.Pleaseuseascopeblockinstead.Forexample,thefollowing:has_many:spam_comments,condi

ruby-on-rails - 为什么一些 "Plain Old Ruby Objects"进入 app/models 目录而不是 lib 目录?

我正在做一个项目,当前的开发人员将他们的“普通旧Ruby对象”放在我们Rails应用程序的models目录中。我在网上看到了大多数示例,其中PORO文件改为放在lib中,但有些人说是模型。人们将它们放在lib目录之上的models目录中是否有逻辑上的/特定的原因? 最佳答案 “惯用的”模型目录用于存放用于保存状态的代码。大多数时候,这将是对应于数据库表的ActiveRecord子类。然而,人们经常将其他东西放在模型目录中。经常看到的一件事是为了利用自动重新加载而将代码丢弃在这里。(lib目录通常不会自动重新加载)

ruby-on-rails - rails 5 : Add record to join table without model (has_and_belongs_to_many)

我有一个User和MeetOption表。这是一个多对多关系,我能够使用create_join_table命令创建一个连接表:railsgmigrationCreateJoinTableUsersMeetOptions用户meet_options这生成了一个迁移文件:classCreateJoinTableUsersMeetOptions我还使用has_and_belongs_to_many创建了user和meet_option模型之间的关联classUserclassMeetOption关联工作正常,我可以在Rails控制台中查询例如user.meet_options。我的问题是:加

ruby-on-rails - 自引用 has_many :through with customized :primary key issue

我正在尝试在我的Rails2.3.8应用程序(ruby1.8.7)中模拟twitter模型classConnection'subject_id',:primary_key=>'user_id',:class_name=>'User'belongs_to:follower,:foreign_key=>'follower_id',:primary_key=>'user_id',:class_name=>'User'endclassUser'user_id',:foreign_key=>'follower_id',:class_name=>'Connection'has_many:relat

ruby-on-rails - Rails 上的 Ruby/设计 : Determining in model if user is logged in

我最近制作了一个应用程序,其中包含文章等,顶部有评论/审核系统。用户发表评论时会发生以下三种情况之一。首先,如果他们是注册用户并通过Devise登录,他们的评论将被标记为“2”状态并立即发布。如果他们是匿名用户,并且之前通过匹配的电子邮件地址批准了评论,则评论的状态为“1”,并被放入审核队列中等待批准。如果用户是全新的并且他们的电子邮件不在系统中,则该评论的状态为“0”,并且电子邮件将发送到他们的收件箱以单击链接以批准他们的电子邮件。在任何这些之后,都会显示适当的通知/闪现消息。我的所有这些工作正常,但在Controller中完成了几乎所有的逻辑和变量定义,使得创建操作非常繁琐。为了学