Rails按关联字段排序

温迪古

我有以下型号

class User
  attr_accesible :first_name, :phone_number
  has_one :user_extension
end

class UserExtension
  attr_accessible :company, :user_id
  belongs_to :user
end

我有包含所有用户的表。我需要按名字,电话号码,公司对该表进行排序。使用first_name和phone_number我没有任何问题,例如

@users = User.order("first_name desc")

,但我还需要按公司排序,而且不知道该怎么做。

这样我就可以得到公司名称

@user.user_extension.company

所以我在使用sql时遇到麻烦,这会给我公司订购的所有用户。DB:PostgreSQL。谢谢。

编辑:

我应该提供有关此模型的更多信息。

create_table "user_extensions", :force => true do |t|
  t.integer  "user_id"
  t.string   "company"
end

create_table "users", :force => true do |t|
  t.string   "first_name"
  t.string   "phone_number" 
end

另外,我尝试使用连接

User.joins(:user_extension).order("user_extension.company desc")

还有我得到的

 User Load (1.6ms)  SELECT "users".* FROM "users" INNER JOIN "user_extensions" ON "user_extensions"."user_id" = "users"."id" ORDER BY user_extension.company desc
PG::Error: ERROR:  relation "user_extensions" does not exist

User.includes(:user_extension).order("user_extension.company desc")

我也得到

PG::Error: ERROR:  relation "user_extensions" does not exist

解决了我的bd的问题,所有连接均正常。

用户名

尝试这个:

@users = User.includes(:user_extension).order("user_extensions.company desc")

我认为您需要在orderuser_extensions,而不是user_extension

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章