标签: rails-activerecord

如何在Rails中的迁移中编写SQL

我有以下SQL需要做的事情

CREATE TABLE cars_users2 AS SELECT DISTINCT * FROM cars_users;

DROP TABLE cars_users;

ALTER TABLE cars_users2 RENAME TO cars_users;
Run Code Online (Sandbox Code Playgroud)

由于我不能使用heroku dataclips删除表,我不能使用dataclips.

所以我想我需要在迁移中执行此操作.

如何将此sql写为迁移?

sql migration postgresql ruby-on-rails-3 rails-activerecord

52
推荐指数
4
解决办法
4万
查看次数

Ruby ActiveRecord模型中的级联删除?

我正在关注rubyonrails.org上的截屏视频(创建博客).

我有以下型号:

comment.rb

class Comment < ActiveRecord::Base
    belongs_to :post
    validates_presence_of :body # I added this
end
Run Code Online (Sandbox Code Playgroud)

post.rb

class Post < ActiveRecord::Base
    validates_presence_of :body, :title
    has_many :comments
end
Run Code Online (Sandbox Code Playgroud)

模型之间的关系工作正常,除了一件事 - 当我删除帖子记录时,我希望RoR删除所有相关的评论记录.我知道ActiveRecords是独立于数据库的,所以没有内置的方法来创建外键,关系,ON DELETE,ON UPDATE语句.那么,有没有办法实现这一点(也许RoR本身可以处理删除相关的评论?)?

ruby-on-rails database-relations rails-activerecord

50
推荐指数
1
解决办法
2万
查看次数

Ruby rails - 从数据库中只选择几列

在rails中构造sql查询以仅从数据库中选择某些列的方式是什么,我有一些大数据字段,我希望避免从连续的定期ajax调用中加载.不必要地阅读是资源消耗和缓慢.

@itemlist = Item.find(:all, :conditions => { .... } ) #this select all columns 
Run Code Online (Sandbox Code Playgroud)

我正在寻找SELECT name, address FROM users;而不是SELECT * FROM users;

ruby ruby-on-rails ruby-on-rails-3 rails-activerecord

50
推荐指数
5
解决办法
6万
查看次数

活动模型,活动记录和活动资源之间的区别

是否有人可以通过定义活动模型,活动记录和活动资源之间的确切区别来帮助我.我已经做了足够的谷歌搜索,以找到确切的差异,但没有得到任何具体可以告诉他们之间的确切差异.现在他们看起来都和我一样.所以请给我一些具体的答案.

activeresource activemodel ruby-on-rails-3 rails-activerecord

50
推荐指数
3
解决办法
1万
查看次数

Ruby on rails - 两次引用相同的模型?

是否可以activerecord通过generate scaffold命令在模型中建立双重关系?

例如,如果我有User模型和PrivateMessage模型,则pm表需要跟踪senderrecipient.

显然,对于单一的关系我会这样做:

ruby script/generate scaffold pm title:string content:string user:references
Run Code Online (Sandbox Code Playgroud)

是否有类似的方式来建立两个关系?

另外,有没有为关系设置别名?

所以不要说:

@message.user
Run Code Online (Sandbox Code Playgroud)

您可以使用以下内容:

@message.sender 要么 @message.recipient

任何建议将不胜感激.

谢谢.

ruby-on-rails relationship rails-activerecord

49
推荐指数
4
解决办法
2万
查看次数

ActiveRecord :: SubclassNotFound:单表继承机制无法定位子类

我是Rails的新手.
我有两个型号分类产品如下: -

class Category < ActiveRecord::Base
 attr_accessible :type

 has_many :products
end

class Product < ActiveRecord::Base
 attr_accessible :category_id, :color, :price, :title

 belongs_to :category
end
Run Code Online (Sandbox Code Playgroud)

我的schema.rb如下: -

ActiveRecord::Schema.define(:version => 20130725220046) do

create_table "categories", :force => true do |t|
    t.string   "type"
    t.datetime "created_at", :null => false
    t.datetime "updated_at", :null => false
  end

  create_table "products", :force => true do |t|
    t.integer  "category_id"
    t.decimal  "price",       :precision => 10, :scale => 0
    t.string   "title"
    t.string   "color"
    t.datetime "created_at",                                 :null …
Run Code Online (Sandbox Code Playgroud)

inheritance ruby-on-rails rails-activerecord

44
推荐指数
4
解决办法
3万
查看次数

Heroku Postgres错误:PGError:错误:关系"组织"不存在(ActiveRecord :: StatementInvalid)

我在将我的Rails应用程序部署到Heroku时遇到问题,在尝试访问应用程序时会抛出此错误:

PGError:错误:关系"组织"不存在(ActiveRecord :: StatementInvalid)

SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
FROM pg_attribute a LEFT JOIN pg_attrdef d
  ON a.attrelid = d.adrelid AND a.attnum = d.adnum
WHERE a.attrelid = '"organizations"'::regclass
  AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum
Run Code Online (Sandbox Code Playgroud)

有人有什么想法吗?这对我来说是第一次,特别是因为我已经在其他应用程序上使用Heroku一年了,并且没有看到这样的东西.当然,一切都适用于本地SQLite.

postgresql ruby-on-rails heroku rails-activerecord

43
推荐指数
4
解决办法
3万
查看次数

计算执行的查询数

我想测试一段代码执行尽可能少的SQL查询.

ActiveRecord::TestCase似乎有自己的assert_queries方法,这将做到这一点.但是因为我没有修补ActiveRecord,所以对我来说没用.

RSpec或ActiveRecord是否提供任何官方的公共方法来计算代码块中执行的SQL查询的数量?

mysql rspec ruby-on-rails rails-activerecord

42
推荐指数
4
解决办法
5867
查看次数

在Rails 4.1中,如何通过枚举符号查找记录?

假设我有这个模型:

class Conversation < ActiveRecord::Base
  enum status: [ :active, :archived ]
end
Run Code Online (Sandbox Code Playgroud)

如何在不使用枚举的数值或不必迭代每个对话的情况下找到所有活动对话?

我试过了Conversation.where(status: :active),但没有产生任何结果.

想到的唯一解决方案是迭代所有对话并选择活动对话,但它看起来不是一个好的解决方案.

Conversation.all.select {|conversation| conversation.active? }  
Run Code Online (Sandbox Code Playgroud)

我能做些什么吗?

ruby ruby-on-rails ruby-on-rails-4 rails-activerecord ruby-on-rails-4.1

42
推荐指数
4
解决办法
2万
查看次数

如何在ActiveRecord中验证电子邮件字段的格式?

我在Rails应用程序中有一个User模型,它有一个电子邮件字段.是否有默认验证可确保电子邮件格式正确?如果没有,我将如何验证该字段?

ruby-on-rails rails-activerecord

41
推荐指数
1
解决办法
3万
查看次数