[英]When thinking-sphinx finds data how do you then pull data out of the hash in ruby on rails?
今天开始使用思维狮身人面像,我想知道这里出了什么问题:
这是我的控制器:
class SearchesController < ApplicationController
def index
@user = User.search params[:search]
end
end
视图:
<%= form_tag searches_path, :method => 'get' do %>
<p>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search", :name => nil %>
</p>
<% end %>
<%= @user %>
用户模型
# thinking sphinx
define_index do
indexes username
indexes email
end
浏览器:
[#<User id: 35, email: "elna@hodkiewicz.net", encrypted_password: "$2a$10$4TCbzA3FLel4uZIAyILHVOFPNqyqShDEMPpv0FHsS24I...", password_salt: "$2a$10$4TCbzA3FLel4uZIAyILHVO", username: "yasmin35", created_at: "2012-01-24 10:01:38", updated_at: "2012-01-24 10:01:38", password_reset_token: nil, password_reset_sent_at: nil, email_change_token: nil, email_change_sent_at: nil>]
我以为是因为它找到了我可以从该哈希中提取所需信息的用户,所以我尝试了一下作为测试:
<%= @user.username %>
并得到了:
undefined method `username' for #<ThinkingSphinx::Search:0x0000010497e258>
我确定我希望狮身人面像可以像我的rails find方法一样工作,但我想它们不会。 我将如何实现自己想要实现的目标?
我想通过有效的用户名或电子邮件来查找用户。但是一旦获得该信息,就可以使用它来访问诸如用户个人资料和照片之类的关联...所以基本上只使用sphinx查找用户,然后以没有狮身人面像的方式做事。
我想知道使用狮身人面像让我的用户通过电子邮件或用户名搜索其他用户是否有意义。 国家等
用户具有一个个人资料和许多照片。 我以为先找到用户,然后我就可以利用他们的联系而无需狮身人面像,但我错了。
请有人启发。 我真的很感激。
亲切的问候
ThinkingSphinx默认情况下返回结果数组,这就是为什么User
对象包装在[ ]
方括号中的原因。
这与User.where(:something => true)
语句在Rails中的工作方式相同,因为您需要在搜索中调用.first
或对结果进行迭代。 否则,您将在无法使用的数组对象上调用.username
。
在这种情况下,您应该遍历结果集:
class SearchesController < ApplicationController
def index
# plural since we could get multiple users returned
@users = User.search params[:search]
end
end
你的看法是
<% @users.each do |u| %>
<%= u.username %>
<% end %>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.