2010-07-08 140 views
1

我用獅身人面像插件,用於搜索和配置它Ruby中的字符串和符號有什麼區別?

define_index do 
    indexes First_name, :sortable => true 
    set_property :min_prefix_len => 1 
end 

這裏FIRST_NAME是列名。

但我得到「搜索守護進程無法運行」的錯誤。當我將列名稱作爲符號時,它可以完美運行。

define_index do 
    indexes :First_name, :sortable => true 
    set_property :min_prefix_len => 1 
end 

請讓我清楚。

+0

[Ruby中字符串和符號的區別是什麼?](http://stackoverflow.com/questions/255078/whats-the-difference-between-a-string-and-a-symbol -in-紅寶石) – 2010-07-09 19:44:19

回答

1

指標FIRST_NAME,:排序=>真

這裏軌對待FIRST_NAME爲常數變量而不是列。

所以你可以使用

指標:FIRST_NAME,:排序=>真

索引 「FIRST_NAME」:排序=>真

變化列First_name to first_name然後你可以這樣做

索引first_name,:sortable => true

2

順便說一句,字符串和符號之間的區別在於表示單個值的多個符號是唯一的,而字符串不是這樣。例如:

irb(term)> :symbol.object_id 
=> 746921 
irb(term)> :symbol.object_id 
=> 746921 


irb(term)> "string".object_id 
=> 298788231 
irb(main):011:0> "string".object_id 
=> 297533890 

另外,符號相等比較快然後字符串相等比較,因爲它們是同一個對象,而在一個串中的值需要被代替比較的對象的id。

相關問題