activerecord相关内容
我有两个表,在 Rails 中有一个 HABTM 关系.类似于以下内容: class Foo < ActiveRecord::Basehas_and_belongs_to_many :bars结尾类 Bar < ActiveRecord::Basehas_and_belongs_to_many :foos结束 现在我有一个新的 Foo 对象,并且想要为它批量分配数千条,我已经预加载
..
我正在尝试创建一个 Active Record 无表模型.我的 user.rb 看起来像这样 class User 在控制器中创建新对象时 @user = User.new 我收到错误 Mysql2::Error: Table 'Sampledb.users' 不存在:SHOW FIELDS FROM users 解决方案 class Tableless包括 Act
..
在开发中,以下(简化的)语句总是记录缓存未命中,在生产中它按预期工作: @categories = Rails.cache.fetch("categories", :expires_in => 5.minutes) 做Rails.logger.info "+++ 缓存丢失 +++"类别.all结尾 如果我在 config/development.rb 中将 config.cache_class
..
给定一个模型: class Personvalidates_lenght_of :name, :maximum =>50结尾 我有一些显示倒计时并强制执行此最大值的视图代码.但是我将数字 50 硬编码到该视图代码中.有没有办法从模型中提取这个数字? 类似于: Person.maximum_length_of_name 我试过了: Person.validators_on(:name
..
虽然 SQL/ActiveRecord 调用的详细功能在大多数情况下很有用,但我想在我有一些循环的情况下将其关闭. 有没有办法关闭它? irb(main):055:0>城市优先←[1m←[35mCity Load (1.0ms)←[0m SELECT `cities`.* FROM `cities` LIMIT 1=>#
..
在 Rails 查询中包含 LIKE 子句的最佳方法是什么,即类似于(完全不正确)的内容: Question.where(:content => 'LIKE %farming%') 解决方案 如果这是 Rails 3,您可以使用 Arel 的 matches.这具有与数据库无关的优点.例如: Question.where(Question.arel_table[:content].mat
..
我在数据库表中有两个日期列 - from_date 和 to_date. 示例: from_date:2012-09-10 to_date:2012-09-30 今天:2012-09-13 如果today 的日期在from_date 和to_date 之间,我需要获取所有记录.如何使用 SQL 查询执行此操作? 如果我已经加载了相应的记录,我可以很容易地决定今天的日期是
..
我在服务对象中有一个方法,该方法组合应包含在事务中的操作.其中一些操作也包含在事务中.例如: class PostCreator定义创建ActiveRecord::Base.transaction 做post.do_thispost.do_thatuser.do_more(post, other_stuff)结尾结尾结尾def 发布def do_this交易做;...;结尾结尾结尾 我需要任何
..
我目前有一个模型Attend,它将有一个状态列,而这个状态列只有几个值.STATUS_OPTIONS = {:yes, :no, :maybe} 1) 我不确定如何在用户插入出席之前验证这一点?基本上是 java 中的枚举,但我怎么能在 Rails 中做到这一点? 解决方案 创建您想要的选项的全局可访问数组,然后验证您的状态列的值: class 参加
..
我是 Rails 的新手.我正在构建一个具有用户模型和配置文件模型的应用程序. 我想将这些模型关联起来: - 用户创建帐户后,他会自动进入“创建个人资料"页面,他创建的个人资料仅与该特定用户相关联. - 只有拥有该配置文件的用户才能对其进行编辑. 我使用 nifty_generators 生成了用户模型.当用户点击提交创建帐户时,我将他重定向到“新配置文件"视图以创建配置文件.我通
..
我如何优化我的 SQL 查询,以忽略这样的情况: Meeting.find(5).users.size =>SELECT COUNT(*) FROM ... WHERE ... User.find(123).meetings.size =>SELECT COUNT(*) FROM ... WHERE ... 我不知道这里如何使用 counter_cache. 这是我的模型关
..
我目前使用默认 cookie 作为我的单点登录 (SSO),但一些用户在我推送更新后遇到奇怪的错误.我正在考虑使用活动记录来存储会话,但想知道如何告诉 Rails 会话在另一个数据库中? 因此,如果我通过 AR 在 App1DB 中存储会话,所有其他应用程序如何知道在何处查找会话? 解决方案 Rails 肯定确实支持数据库会话存储. 在 config/environment.r
..
我正在开发一个 rails 2.3.2 应用程序.我需要为订单记录保留 session_id,检索它并最终在订单完成时删除 session_id.当我使用 cookie 作为会话存储时它工作,但它不适用于 active_record 存储.(我重新启动了浏览器,所以没有缓存问题.) 我知道 rails 2.3 实现了延迟会话加载.我阅读了一些关于它的信息,但仍然很困惑. 有人可以澄清我
..
我在将 Rails 2.3.14/ruby 1.8.7 应用程序升级到 3.1.1/1.9.2 时遇到问题:我有一些 (ActiveRecord::StatementInvalid) "Mysql2::Error: MySQL server has away" 偶尔会发生错误.重要的是要确切地说,我在 2.3.14 上的 'mysql' gem 和完全相同的 db 上从来没有遇到过这样的问
..
我有一个有趣的问题.我使用的是 Ruby 1.9.2 和 Rails 3.1.3. 我有 2 个模型,为了简单起见,我们假设客户和商店.商店有很多顾客,一个顾客属于一个商店.我正在尝试为一家商店收集所有客户,并为更多客户创建一个地方,以便我稍后可以填充值.相反,在我不期望的时候调用了 customer.save. store = Store.find(1)customer_array =
..
我在 Heroku 上运行 pg:reset 并尝试运行 db:migrate,所有迁移都运行,但迁移失败并显示以下错误和跟踪: rake 中止!转储数据库时出错/app/vendor/bundle/ruby/2.0.0/gems/activerecord-4.0.0.rc2/lib/active_record/tasks/postgresql_database_tasks.rb:55:in `
..
使用 ActiveRecord 你可以定义一个这样的类: 班级联系方式{私人字符串_name;公共字符串名称{得到 { 返回 _name;}放{if (value == String.IsNullOrWhiteSpace())throw new ArgumentException(...);别的_name = 值;}}public Boolean Validate() { .../* 检查名称在
..
在我们的 Rails 应用程序中,我们需要根据请求的子域(每个国家/地区不同的数据库)使用不同的数据库. 现在我们正在做类似于这个问题中推荐的操作.也就是说,在每个请求上调用 ActiveRecord::Base.establish_connection. 但是它似乎a> ActiveRecord::Base.establish_connection 删除当前的连接池并在每次调用时建立
..
以下是评论和用户之间的关系.每条评论都有一个用户,所以我在下面的代码中构建了一个连接. 我想知道如何构建此代码以仅在联接中包含特定列.我不需要所有的用户信息.只是名字.任何建议. 当前代码: @comments = Comment.where(:study_id => @study.id).joins(:user) 解决方案 你可以这样使用: @comments = Comme
..
我有一个应用程序,我的用户可以在其中设置一组首选项.两者都存储为 ActiveRecord 模型,如下所示: class User 我现在可以访问用户的首选项: @u = User.first@u.preference_set =>#@u.preference_set.play_sounds =>真的 但如果尚未创建首选项集,则会失败,因为@u.pre
..