我有以下型号
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
order
user_extensions
user_extension