我有以下型号
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")
我认为您需要在order
:user_extensions
,而不是user_extension
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句