Ruby on rails `.joins`not working for在PostgreSQL上的Rails 3.2中有很多
我正在将一个遗留项目升级到Rails 3.2.1,但是我在使用新的ActiveRecord查询接口时遇到了问题,特别是在使用新的Ruby on rails `.joins`not working for在PostgreSQL上的Rails 3.2中有很多,ruby-on-rails,ruby-on-rails-3,activerecord,ruby-on-rails-3.2,Ruby On Rails,Ruby On Rails 3,Activerecord,Ruby On Rails 3.2,我正在将一个遗留项目升级到Rails 3.2.1,但是我在使用新的ActiveRecord查询接口时遇到了问题,特别是在使用新的join方法时 我有一个用户模型,拥有许多播客 class User < ActiveRecord::Base has_many :podcasts end class Podcast < ActiveRecord::Base belongs_to :user end 奇怪的是,如果我将关系更改为ahas\u one,这一切都会起作用 我的sch
join
方法时
我有一个用户
模型,拥有许多播客
class User < ActiveRecord::Base
has_many :podcasts
end
class Podcast < ActiveRecord::Base
belongs_to :user
end
奇怪的是,如果我将关系更改为ahas\u one
,这一切都会起作用
我的schema.rb的相关部分
create_table "podcasts", :force => true do |t|
t.string "name", :default => "", :null => false
t.string "url", :default => "", :null => false
t.text "description"
t.datetime "last_updated"
t.boolean "active", :default => true
t.integer "user_id"
end
底层数据库是PostgreSQL 9.1.2,ruby位于1.8.7-p357
这是故意的行为吗
我知道我可以将SQL传递给join,但在可读性方面这将是一个相当大的倒退。您应该使用:podcast
:
User.joins :podcasts
与连接使用的符号应与关联中使用的符号匹配。从:
您应该使用:播客:
User.joins :podcasts
与连接使用的符号应与关联中使用的符号匹配。从:
class Category < ActiveRecord::Base
has_many :posts
end
class Post < ActiveRecord::Base
belongs_to :category
has_many :comments
has_many :tags
end
Category.joins(:posts)