使用Mongo运行'bootstrap:themed'时出现Twitter Bootstrap错误

时间:2012-12-25 19:14:38

标签: ruby-on-rails mongodb twitter-bootstrap twitter-bootstrap-rails

当我尝试在终端中运行rails g bootstrap:themed Associations时会发生这种情况:

C:/Users/ruby/.pik/rubies/Ruby-193-p327/lib/ruby/gems/1.9.1/gems/twitter-bootstrap-rails-2.1.9/lib/generators/bootstrap/themed/themed_generator.rb:87:in `block in retrieve_columns': undefined method `columns' for Association:Class (NoMethodError)

它似乎无法工作,我尝试过很多方法,到处搜索,从不成功。我正在使用Mongo。

1 个答案:

答案 0 :(得分:7)

我得到了完全相同的错误。我创建了两个相同的项目 - 一个有mongoid,一个没有。我只得到mongoid项目的错误。

找到解决此问题的解决方法:

删除文件中对ActiveRecord的引用(第87行):

/home/ubuntu/.rvm/gems/ruby-1.9.3-p327/bundler/gems/twitter-bootstrap-rails-b8b7eb22614a/lib/generators/bootstrap/themed/themed_generator.rb

我改变了......

  def retrieve_columns
    if defined?(ActiveRecord)
      rescue_block ActiveRecord::StatementInvalid do
        @model_name.constantize.columns
      end
    else
      rescue_block do
        @model_name.constantize.fields.map {|c| c[1] }
      end
    end
  end

到此......

  def retrieve_columns
      rescue_block do
        @model_name.constantize.fields.map {|c| c[1] }
      end
  end

为了使视图正常工作,我需要确保我的模型类有一个不是nil的created_at字段(或者编辑生成的视图)。

希望这有帮助。

PS:哇......好像你在windows上有twitter-bootstrap-rails工作 - 我不知道这是可能的!