我有以下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写为迁移?
我正在关注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本身可以处理删除相关的评论?)?
在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;
是否有人可以通过定义活动模型,活动记录和活动资源之间的确切区别来帮助我.我已经做了足够的谷歌搜索,以找到确切的差异,但没有得到任何具体可以告诉他们之间的确切差异.现在他们看起来都和我一样.所以请给我一些具体的答案.
activeresource activemodel ruby-on-rails-3 rails-activerecord
是否可以activerecord通过generate scaffold命令在模型中建立双重关系?
例如,如果我有User模型和PrivateMessage模型,则pm表需要跟踪sender和recipient.
显然,对于单一的关系我会这样做:
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
任何建议将不胜感激.
谢谢.
我是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) 我在将我的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.
我想测试一段代码执行尽可能少的SQL查询.
ActiveRecord::TestCase似乎有自己的assert_queries方法,这将做到这一点.但是因为我没有修补ActiveRecord,所以对我来说没用.
RSpec或ActiveRecord是否提供任何官方的公共方法来计算代码块中执行的SQL查询的数量?
假设我有这个模型:
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
我在Rails应用程序中有一个User模型,它有一个电子邮件字段.是否有默认验证可确保电子邮件格式正确?如果没有,我将如何验证该字段?
postgresql ×2
ruby ×2
activemodel ×1
heroku ×1
inheritance ×1
migration ×1
mysql ×1
relationship ×1
rspec ×1
sql ×1