我正在尝试设置Pageflow。最后,我设法创建了数据库并安装了页面流。我可以运行rails s
,但我在浏览器中显示Migrations are pending; run 'bin/rake db:migrate RAILS_ENV=development' to resolve this issue.
。
无论如何,输入bundle exec rake db:create db:migrate
会给我这个错误:
== AddDeviseToUsers: migrating ===============================================
-- change_table(:users)
rake aborted!
StandardError: An error has occurred, all later migrations canceled:
undefined method `to_sym' for {:null=>false, :default=>""}:Hash/Users/user/.gem/gems/activerecord-4.0.2/lib/active_record/connection_adapters/abstract/schema_statements.rb:671:in `type_to_sql'
schema_statements中的这一行说。
def type_to_sql(type, limit = nil, precision = nil, scale = nil) #:nodoc:
if native = native_database_types[type.to_sym]
column_type_sql = (native.is_a?(Hash) ? native[:name] : native).dup
if type == :decimal # ignore limit, use precision and scale
scale ||= native[:scale]
if precision ||= native[:precision]
if scale
column_type_sql << "(#{precision},#{scale})"
else
column_type_sql << "(#{precision})"
end
elsif scale
raise ArgumentError, "Error adding decimal column: precision cannot be empty if scale is specified"
end
elsif (type != :primary_key) && (limit ||= native.is_a?(Hash) && native[:limit])
column_type_sql << "(#{limit})"
end
column_type_sql
else
type
end
端
我尝试使用gem composite-primary-keys解决这个问题,但发现rails 4.0.2没有兼容版本。
作为一个绝对的菜鸟,我在这里找到了问题:https://github.com/composite-primary-keys/composite_primary_keys/issues/174但它并没有帮助我。
谢谢!
// EDIT
这是我的user.rb:
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :token_authenticatable, :confirmable,
# :lockable, :timeoutable and :omniauthable
devise :database_authenticatable,
:recoverable, :rememberable, :trackable, :validatable
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable,
:recoverable, :rememberable, :trackable, :validatable
include Pageflow::UserMixin
end
最后没有额外的逗号......