繁体   English   中英

当思想狮身人面像找到数据时,您如何将数据从Rails中的ruby中的哈希中提取出来?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM