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