2012-01-03 2 views
0

が答えpirmary IDは、IDスフィンクス思考:インデックスエラー

ではありません、私は熊手たときに、私はこのエラーを取得していたモデルを伝えるために、モデル内の set_primary_key「QTLID」:TSインデックス

Cannot automatically map attribute sphinx_internal_id in QtlTable to an 
equivalent Sphinx type (integer, float, boolean, datetime, string as ordinal). 
You could try to explicitly convert the column's value in your define_index 
block: 
    has "CAST(column AS INT)", :type => :integer, :as => :column 

私はこれを修正する方法を理解することはできません。ここで

(ひどい規則のために私にジャンプしない私は、セットアップしませんでした。このデータベースに注意してください)私のモデルである:ここでは

class QtlTable < ActiveRecord::Base 
    ... 
    define_index do 
     indexes :QTLID 
     has :QTLName 
    end  
end 

は、スキーマがqtl_tableのための次のようになります。

create_table "qtl_table", :primary_key => "QTLID", :force => true do |t| 
    t.string "QTLName",      :limit => 60,  :default => "", :null => false 
    t.string "Parent_1",     :limit => 60,  :default => "", :null => false 
    t.string "Parent_2",     :limit => 60,  :default => "", :null => false 
    t.string "Heritability",    :limit => 60,  :default => "" 
    t.text "Population_size",    :limit => 16777215 
    t.string "Number_plants_bulked",  :limit => 10 
    t.text "Pop_high_score",    :limit => 16777215 
    t.text "Pop_low_score",    :limit => 16777215 
    t.string "Loci_tested",     :limit => 10,  :default => "" 
    t.string "Intervals_associated",  :limit => 10,  :default => "" 
    t.string "Interval_length",    :limit => 6,  :default => "" 
    t.string "Interval_LOD_score",   :limit => 12,  :default => "" 
    t.string "Interval_P_value",   :limit => 6,  :default => "" 
    t.string "Interval_R2",     :limit => 6,  :default => "" 
    t.string "Genotypic_R2",    :limit => 6,  :default => "" 
    t.text "R2_Definition",    :limit => 16777215 
    t.string "Percent_variation_explained", :limit => 6,  :default => "" 
    t.string "First_entered",    :limit => 60,  :default => "", :null => false 
    t.string "Last_update",     :limit => 60,  :default => "" 
    t.string "TraitName",     :limit => 100,  :default => "" 
    t.binary "in_new",      :limit => 1 
end 

add_index "qtl_table", ["QTLName"], :name => "QTLName_index" 
add_index "qtl_table", ["TraitName"], :name => "TraitName_index" 

は答えた:pirmary IDがIをpirmaryモデルを伝えるためにモデルに

+0

IDではありません – bdeonovic

答えて

1

set_primary_key「QTLID」IDでないモデルを伝えるために、モデル内の set_primary_key「QTLIDを」 set_primary_key "QTLID" をモデルにpirmary IDがIDではないモデルを伝えるために:Dは答えた

関連する問題