在rails应用程序中集成acts_as_rated插件

时间:2012-06-25 08:53:27

标签: ruby-on-rails rating

我正在创建一个用户板应用程序,其中用户拥有任意数量的主板,并且可以评估主板。我想在我的rails中安装 acts_as_rated 插件应用。由于这不作为gem使用,我使用以下命令将其安装为插件:

rails plugin install svn://rubyforge.org/var/svn/acts-as-rated/trunk/acts_as_rated

此命令在vendor目录中安装所有必需的插件文件。接下来,我在 Boards 模型

中包含以下代码
class Board < ActiveRecord::Base
  acts_as_rated
end

接下来,我重启我的控制台并运行以下命令

u=User.first
 => #<User id: 1, first_name: "taroon", created_at: "2012-03-26 09:18:20", updated_at: "2012-03-26 09:18:20">

b=Board.first
 => #<Board id: 1, name: "boards_1", created_at: "2012-03-26 09:19:39", updated_at: "2012-03-26 09:19:39"> 

b.rate 5, u

它给了我以下错误

ActiveRecord::StatementInvalid: Could not find table 'ratings'
from /home/swati/.rvm/gems/ruby-1.9.2-p318/gems/activerecord-3.0.10/lib/active_record/connection_adapters/sqlite_adapter.rb:295:in `table_structure'
from /home/swati/.rvm/gems/ruby-1.9.2-p318/gems/activerecord-3.0.10/lib/active_record/connection_adapters/sqlite_adapter.rb:186:in `columns'
from /home/swati/.rvm/gems/ruby-1.9.2-p318/gems/activerecord-3.0.10/lib/active_record/base.rb:685:in `columns'
from /home/swati/.rvm/gems/ruby-1.9.2-p318/gems/activerecord-3.0.10/lib/active_record/base.rb:698:in `column_names'
from /home/swati/projects/test_projects/dummy_project/vendor/plugins/acts_as_rated/lib/acts_as_rated.rb:193:in `rate'
from (irb):6
from /home/swati/.rvm/gems/ruby-1.9.2-p318/gems/railties-3.0.10/lib/rails/commands/console.rb:44:in `start'
from /home/swati/.rvm/gems/ruby-1.9.2-p318/gems/railties-3.0.10/lib/rails/commands/console.rb:8:in `start'
from /home/swati/.rvm/gems/ruby-1.9.2-p318/gems/railties-3.0.10/lib/rails/commands.rb:23:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'

我检查了迁移,但没有创建 rating 表的迁移。我都不知道这个表中的字段。

任何人都可以建议我解决这个问题..

1 个答案:

答案 0 :(得分:1)

act_as_rated插件的自述文件说您需要根据此文件进行自己的迁移:test/fixtures/migrations/001_add_rating_tables.rb

来自自述文件的引用:

  

档案test/fixtures/migrations/001_add_rating_tables.rb   显示了所有类型的迁移选项的示例。

     

另请参阅acts_as_rated的详细文档   关于如何声明它的方法,以及其余的文档如何   生成迁移列/文件以及如何使用它。

因此,从here下载并解压缩您的模块,然后您就可以找到相应的文件,然后就可以进行自己的迁移了。