Tag: 数据库

HABTM找到“AND”连接,而不是“OR”

我有两个模型,与HABTM相关联(实际上使用has_many:两端的连接,以及连接表)。 我需要检索与两个ModelB的BOTH相关联的所有ModelAs。 我不希望ModelB_1的所有ModelAs都与ModelB_2的所有ModelAs连接在一起。 我真的想要所有与BOTH ModelB_1和ModelB_2相关的ModelAs。 它不仅限于2个ModelB,最多可能有50个ModelB,因此必须进行扩展。 我可以使用各种类比来描述问题,我认为比前一段更好地描述了我的问题: * Find all books that were written by all 3 authors together. * Find all movies that had the following 4 actors in them. * Find all blog posts that belonged to BOTH the Rails and Ruby categories for each post. * Find all users that had all […]

迭代数据库中的每条记录 – Ruby on Rails / ActiveRecord

n00b问题。 我正在尝试遍历数据库中的每个用户记录。 伪代码可能看起来像这样: def send_notifications render :nothing => true # Randomly select Message record from DB @message = Message.offset(rand(Message.count)).first random_message = @message.content @user = User.all.entries.each do @user = User.find(:id) number_to_text = “” @user.number = number_to_text #number is a User’s phone number puts @user.number end end 有人可以填写我这样做的最佳方法吗? 语法的一点帮助也会很棒:)

如何在rails中自动从数据库中删除记录

我有一个名为products的rails表设置,它的运行良好,让我们假设我想在创建3周后自动删除一条记录怎么去代码 我的产品db如下 class Products < ActiveRecord::Migration def change create_table :products do |t| t.text :description t.string :price t.string :name t.string :contact t.attachment :photo t.string :slug t.integer :user_id t.timestamps end add_index :products, :user_id end end

添加索引:通过生成迁移,在rails上的ruby中的列是唯一的

我知道我可以触摸迁移并添加 add_index :table_name, :column_name, :unique => true 但正确的rails migration命令如何生成呢? rails g migration add_index_to_column_name :column_name, :unique => true 是对的吗? 在我的特例中,我有一个表客户 t.integer :customerID t.string :surname t.string :first_name t.string :phone 我想将customerID设置为唯一。 试着 rails g migration AddIndexToCustomers :customerID, :unique => true 但是,如果我在此之后查看我的迁移文件,它看起来不正确看到这个: def change add_column :customers, :, :customerID, add_column :customers, :, :unique add_column :customers, :=, :string end 有什么想法或建议吗?

在heroku生产站点上清除rails app数据库

所以我是ROR和Heroku的新手,需要一些帮助。 我已经创建了一个应用程序并已部署它; 但是,我想清除与之相关的数据库。 意思是我想清除到目前为止已创建的任何用户(及其附加数据)。 我基本上创建了几个虚假帐户来测试生产网站上的数据库是否有效,但现在我想清除它,并从一个新的数据库开始。 这可能不完全删除数据库吗? 任何帮助都将得到真诚的感谢。 非常感谢您的宝贵时间!

在多台笔记本电脑上运行相同的Rails代码,并将所有数据库中的数据保存到同一个数据库中

我试图在localhost:3000上的多台笔记本电脑上运行相同的rails代码。 如何保存从不同笔记本电脑提交的数据以保存在单个数据库中。 或者,他们将共享相同的数据库,如果有人提交了数据,它将自动在其他人的笔记本电脑上。 还要考虑不会有任何互联网连接,但我们可以用以太网电缆连接它们。 另外,我们使用的是sqllite3。 谢谢!

db:schema:load vs db:使用capistrano迁移

我有一个rails应用程序,我正在移动到另一台服务器,我想我应该使用db:schema:load来创建mysql数据库,因为它是推荐的。 我的问题是我正在使用capistrano进行部署,而似乎默认为rake db:migrate。 有没有办法改变这个或使用db:migrate的capistrano有充分理由?

数据库分片和Rails

在Rails中处理分片数据库的最佳方法是什么? 是应该在应用程序层,活动记录层,数据库驱动程序层,代理层或其他方面处理分片? 各自的优点和缺点是什么?

Capybara + Selemium:如何在集成测试代码中初始化数据库并使其在Rails应用程序中可见?

配置:使用RSpec,Capybara,Selemium驱动程序,SQLite数据库对Rails项目进行集成测试。 情况:我很少与Capybara和默认的rack_test驱动程序进行集成测试。 他们直接在数据库中创建用户注册(对于Devise gem)。 然后他们像用户一样使用Capybara DSL登录并测试场景。 问题:我尝试将驱动程序更改为Selenium以测试JavaScript代码。 现在测试失败,因为应用程序没有看到测试创建的用户注册。 调查:看起来Selenium驱动程序与转换的工作方式不同,因此在测试中所做的更改在Web应用程序中是不可见的。 可能的解决方案包括: config.use_transactional_fixtures = false DatabaseCleaner.strategy = :truncation

Rails迁移具有相同的名称

人们如何优雅地应对这个问题? 我有一个创建一个表的迁移,然后另一个删除该表,现在我想重新引入它,问题是我不能,因为他们有相同的名称。