Questions tagged «activerecord»

Active Record是一种将域逻辑与单个对象中的存储抽象相结合的模式。使用此标记可以查询有关模式的问题,可以使用[rails-activerecord]来查询有关Rails ORM框架的问题。

5
您可以在Rails中获得数据库用户名,密码,数据库名称吗?
我正在编写一个rake任务,该任务在Rails / ActiveRecord之外进行一些数据库工作。 有没有一种方法可以获取如中所定义的当前环境的数据库连接信息(主机,用户名,密码,数据库名称)database.yml? 我想要得到它,这样我就可以用它来连接... con = Mysql.real_connect("host", "user", "pw", "current_db")

8
inverse_of有什么作用?它生成什么SQL?
我想尽我所能inverse_of,但我不明白。 生成的sql是什么样的(如果有)? inverse_of如果与,和一起使用:has_many,该选项是否表现出相同的行为?:belongs_to:has_many_and_belongs_to 抱歉,这是一个基本问题。 我看到了这个例子: class Player < ActiveRecord::Base has_many :cards, :inverse_of => :player end class Card < ActiveRecord::Base belongs_to :player, :inverse_of => :cards end

5
如何在Rails中发现模型属性?
我发现很难轻松查看所有模型类中都存在哪些属性/属性,因为它们未在我的类文件中明确定义。 为了发现模型属性,我将schema.rb文件保持打开状态,并在它与需要编写的任何代码之间进行切换。这行得通,但是很笨拙,因为我必须在读取模式文件以拾取属性,模型类文件以检查方法以及我编写的用于调用属性和方法的任何新代码之间切换。 我的问题是,当您第一次分析Rails代码库时,如何发现模型属性?您是否始终保持schema.rb文件处于打开状态,还是有一种更好的方法不涉及在模式文件和模型文件之间不断地切换?

4
如何使用NuoDB在Ruby On Rails中手动执行SQL命令
我正在尝试手动执行SQL命令,以便可以访问NuoDB中的过程。 我正在使用Ruby on Rails,并且正在使用以下命令: ActiveRecord::Base.connection.execute("SQL query") “ SQL查询”可以是任何SQL命令。 例如,我有一个名为“ Feedback”的表,执行命令时: ActiveRecord::Base.connection.execute("SELECT `feedbacks`.* FROM `feedbacks`") 这只会返回“ true”响应,而不是向我发送所有请求的数据。 这是Rails Console上的输出是: SQL (0.4ms) SELECT `feedbacks`.* FROM `feedbacks` => true 我想用它来调用NuoDB中的存储过程,但是在调用过程时,这也会返回“ true”响应。 无论如何,我可以执行SQL命令并获取请求的数据,而不是获得“真实”响应吗?

7
通过关联归属
考虑下面的协会,我需要引用Question一个Choice通过从连接Choice模式。我一直试图belongs_to :question, through: :answer用来执行此操作。 class User has_many :questions has_many :choices end class Question belongs_to :user has_many :answers has_one :choice, :through => :answer end class Answer belongs_to :question end class Choice belongs_to :user belongs_to :answer belongs_to :question, :through => :answer validates_uniqueness_of :answer_id, :scope => [ :question_id, :user_id ] end 我正进入(状态 NameError未初始化的常数 …

6
数量,大小,长度……在Ruby中有太多选择?
我似乎找不到确切的答案,我想确保自己了解“ n级” :-) a = {“ a” =>“ Hello”,“ b” =>“世界”} a.count#2 a。大小#2 长度#2 a = [10,20] a.count#2 a。大小#2 长度#2 那么该使用哪个呢?如果我想知道a是否具有多个元素,那么这似乎无关紧要,但是我想确保自己了解真正的区别。这也适用于数组。我得到相同的结果。 另外,我认识到ActiveRecord的count / size / length具有不同的含义。我现在对纯Ruby(1.92)最为感兴趣,但是如果有人想了解一下AR的不同之处,那也将不胜感激。 谢谢!


3
使用Rails序列化将哈希保存到数据库
我尝试将哈希映射ID保存到Rails应用程序中的许多尝试中。我迁移到数据库以容纳此新列: class AddMultiWrongToUser < ActiveRecord::Migration def self.up add_column :users, :multi_wrong, :string end def self.down remove_column :users, :multi_wrong end end 在我的模型中,我有: class User < ActiveRecord::Base serialize :multi_wrong, Hash end 但是,当我使用Rails控制台通过以下操作进行测试时: user = User.create() user.multi_wrong = {"test"=>"123"} user.save 输出为假。这是怎么了

6
如何毫无例外地选择Array Rails ActiveRecord中的ID
当我有一组ID时,例如 ids = [2,3,5] 我表演 Comment.find(ids) 一切正常。但是,当有不存在的ID时,我会得到一个例外。通常,当我获得与某个过滤器匹配的ID列表时,会发生类似的情况 current_user.comments.find(ids) 这次我可能有一个有效的注释ID,但是该注释ID不属于给定的User,因此找不到该注释,并且出现异常。 我已经尝试过了find(:all, ids),但是它返回了所有记录。 我现在能做的唯一方法是 current_user.comments.select { |c| ids.include?(c.id) } 但这对我来说似乎是超级无效的解决方案。 有没有更好的方法来选择数组中的ID,而不会在不存在的记录上获得异常?

14
Rails 3:获取随机记录
因此,我找到了一些在Rails 2中查找随机记录的示例-首选方法似乎是: Thing.find :first, :offset => rand(Thing.count) 作为新手,我不确定如何在Rails 3中使用新的find语法来构造它。 那么,查找随机记录的“路轨3种方式”是什么?

3
何时在Rails的表中添加什么索引
我对Rails数据库有疑问。 我应该在所有外键(例如“ xxx_id”)上添加“ index”吗? 我应该在自动创建的“ id”列中添加“ index”吗? 我应该在自动创建的“ id”列中添加“ index(unique)”吗? 如果我一次将索引添加到两个外键(add_index (:users, [:category, :state_id]),会发生什么呢?与为每个键添加索引有何不同? class CreateUsers < ActiveRecord::Migration def self.up create_table :users do |t| t.string :name t.integer :category_id t.integer :state_id t.string :email t.boolean :activated t.timestamps end # Do I need this? Is it meaningless to add the index to the …


2
Ruby on Rails。如何在属于关系的Active Record中使用.build方法?
我无法在Rails中找到有关.build方法的任何文档(我目前正在使用2.0.2)。 通过实验,您似乎可以使用build方法has_many在保存任何一条记录之前将一条记录添加到关系中。 例如: class Dog < ActiveRecord::Base has_many :tags belongs_to :person end class Person < ActiveRecord::Base has_many :dogs end # rails c d = Dog.new d.tags.build(:number => "123456") d.save # => true 这将正确保存带有外键的狗和标签。这似乎在belongs_to关系中不起作用。 d = Dog.new d.person.build # => nil object on nil.build 我也尝试过 d = Dog.new d.person = Person.new …

6
Rails 4 LIKE查询-ActiveRecord添加引号
我正在尝试像这样的查询 def self.search(search, page = 1 ) paginate :per_page => 5, :page => page, :conditions => ["name LIKE '%?%' OR postal_code like '%?%'", search, search], order => 'name' end 但是,当它运行时,会添加引号,导致sql语句如下所示 SELECT COUNT(*) FROM "schools" WHERE (name LIKE '%'havard'%' OR postal_code like '%'havard'%')): 这样您就可以看到我的问题。我正在使用从未使用过的Rails 4和Postgres 9,因此不确定它是否与activerecord或postgres无关。 我该如何进行设置,以便'%my_search%'在最终查询中得到满意的结果?


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.