1
我剛接觸rails,並試圖創建基於事件的應用程序。ROR在遷移文件中正確添加索引
當數據庫最終被記錄的事件填充時,我希望能夠執行一般搜索並根據其名稱,地址或開始日期列出它們。 (我最終將對Google搜索結果進行地理編碼並顯示多個事件)
對於用戶個人資料頁面上的單獨用途,我還需要能夠根據user_id搜索它們,並將它們列出它們的created_at時間戳的逆序。
我不確定如何在遷移文件中正確添加索引。這是我目前的移民文件:
class CreateEvents < ActiveRecord::Migration
def change
create_table :events do |t|
t.string :name
t.string :address
t.float :latitude
t.float :longitude
t.datetime :start_date
t.datetime :end_date
t.references :group, index: true
t.references :user, index: true
t.integer :privacy
t.text :content
t.timestamps null: false
end
add_index :events, [:user_id, :created_at]
end
end
我試着這樣做:
add_index :events, [:user_id, :created_at, :address, :start_time]
但收到此錯誤:
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:
Index name 'index_events_on_user_id_and_created_at_and_address_and_start_time' on table 'events' is too long; the limit is 62 characters/Users/home/.rvm/gems/[email protected]/gems/activerecord-4.2.0.beta4/lib/active_record/connection_adapters/abstract/schema_statements.rb:884:in `add_index_options'