如何在视图中使用searchlogic订购关联对象?

时间:2010-07-09 11:01:08

标签: ruby-on-rails ruby searchlogic

你好再次知道stackoverflow的知识大师, 小编码员学徒tabaluga再一次需要帮助

目标:在视图中使用户名可排序。困难在于,我在控制器中查询配置文件(Profile.username不存在,但Profile.user.username确实存在)。我该如何做到这一点?我的代码到目前为止

模型代码

Class User < Activerecord::Base
   attr_accessible :username
   has_one :profile
 end

 Class Profile < Activerecord::Base
   belongs_to :user
 end

控制器代码

@search = Profile.search(params[:search])

查看代码

<%= order @search, :by => :user_username %>

好的,视图代码不起作用(显然)如何在视图代码中传递关联对象并将其转换为符号?

提前致谢:)

P.S。编辑我刚才发现,这段代码确实有效,抱歉打扰了:)

1 个答案:

答案 0 :(得分:1)

您可以尝试在named_scope模型中创建Profile,在进入搜索之前按用户对个人资料进行排序。类似的东西:

named_scope :sorted_by_user, { :include => :user, :conditions => ["ORDER BY user.username"] }

然后

@search = Profile.sorted_by_user.search(params[:search])