0
當我嘗試這個文件運行遷移:在Rails的Execute方法4.1.1遷移工作不
class AddIndexToUsernameDowncaseForUsers < ActiveRecord::Migration
def up
execute 'CREATE INDEX index_users_on_username_downcase ON users (lower(username));'
end
def down
remove_index :users, name: :index_users_on_username_downcase
end
end
我得到這個錯誤:
== 20140521043803 AddIndexToUsernameDowncaseForUsers: migrating ===============
-- execute("CREATE INDEX index_users_on_username_downcase ON groups lower(username);")
rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:
undefined method ` execute' for #<AddIndexToUsernameDowncaseForUsers:0x007fea8a9b9c50>/Users/mydir/db/migrate/20140521043803_add_index_to_username_downcase_for_users.rb:3:in `up'
NoMethodError: undefined method ` execute' for #<AddIndexToUsernameDowncaseForUsers:0x007fea8a9b9c50>
/Users/mydir/db/migrate/20140521043803_add_index_to_username_downcase_for_users.rb:3:in `up'
我真的很困惑,我我以前從未遇到過運行遷移的問題。它看起來像助手沒有被包括在內或什麼東西。相當難倒,但我的猜測是這是我面臨的一個問題。
的Rails 4.1.1,2.1.1紅寶石,Postgres的9.3
在'execute'行的開頭是否有任何不可打印/控制字符?在運行'execute'前,似乎有4個字符,並且在錯誤中的引號內:''execute'' –
謝謝Graeme。那爲我做了。不知道他們是怎麼進去的,尤其是因爲我使用的VIM通常顯示怪異的字符。隨意提交作爲答案,所以你可以得到你當之無愧的點:) – Neal