【发布时间】:2014-06-02 00:19:11
【问题描述】:
如果我这样做:
rails 生成控制器欢迎索引
我明白了:
/usr/local/share/ruby/gems/2.0/gems/activesupport-3.2.17/lib/active_support/dependencies.rb:251:in `require': 无法加载此类文件 -- io/console (LoadError)
但我的 gem 列表显示控制台已安装:
宝石清单
* 本地宝石 *
actionmailer (3.2.17)
动作包 (3.2.17)
活动模型(3.2.17)
活动记录 (3.2.17)
活动资源(3.2.17)
主动支持 (3.2.17)
arel (3.0.3)
大十进制 (1.2.5, 1.2.0)
建造者 (3.0.4)
捆绑器 (1.6.2)
咖啡轨 (3.2.2)
咖啡脚本 (2.2.0)
咖啡脚本源 (1.7.0)
erubis (2.7.0)
execjs (2.0.2)
远足 (1.2.3)
i18n (0.6.9)
io 控制台 (0.4.2)
旅程(1.0.4)
jquery-rails (3.1.0)
json (1.8.1, 1.7.7)
邮件 (2.5.4)
mime 类型 (1.25.1)
multi_json (1.9.2)
多语言 (0.3.4)
心理 (2.0.5, 2.0.0)
机架 (1.4.5)
机架缓存 (1.2)
机架-ssl (1.3.4)
机架测试 (0.6.2)
导轨 (3.2.17)
铁路 (3.2.17)
耙子 (10.3.0)
rdoc (4.1.1, 4.0.1, 3.12.2)
萨斯(3.3.5)
sass-rails (3.2.6)
链轮 (2.2.2)
sqlite3 (1.3.9)
雷神 (0.19.1)
倾斜 (1.4.1)
树顶(1.4.15)
tzinfo (0.3.39)
丑化器(2.5.0)
以 root 身份运行。
如果我这样做:
宝石环境
我明白了:
RubyGems 环境:
RUBYGEMS 版本:2.0.14
RUBY 版本:2.0.0(2014-02-24 补丁级别 451)[x86_64-linux]
安装目录:/usr/local/share/ruby/gems/2.0
RUBY 可执行文件:/usr/bin/ruby2.0
可执行目录:/usr/local/bin
RUBYGEMS 平台:
红宝石
x86_64-linux
宝石路径:
/usr/local/share/ruby/gems/2.0
/root/.gem/ruby/2.0
/usr/share/ruby/gems/2.0
宝石配置:
:update_sources => 真
:verbose => 真
:回溯 => 假
:bulk_threshold => 1000
远程源:
如果我这样做:
ls -al /usr/local/share/ruby/gems/2.0/gems/io-console-0.4.2/
我看到 gem 已安装。
为什么会收到 LoadError?
如果我这样做:
emacs /usr/local/share/ruby/gems/2.0/gems/activesupport-3.2.17/lib/active_support/dependencies.rb
并像这样编辑此方法:
def require(file)
result = false
print file
print " \n\n "
load_dependency(file) { result = super }
result
end
然后我再试一次:
rails 生成控制器欢迎索引
然后我明白了:
active_support/descendants_tracker
导轨/引擎/导轨
active_support/core_ext/module/delegation
active_support/core_ext/object/to_param
active_support/core_ext/regexp
旅程
旅程/路由器
旅程/核心扩展/哈希
旅程/路由器/实用程序
uri
旅程/路由器/strexp
旅程/路线
旅程/格式化程序
旅程/解析器
racc/parser.rb
racc/cparse
旅程/parser_extras
旅程/扫描仪
strscan
旅程/节点/节点
旅程/访客
旅程/路线
旅程/路径/模式
旅程/gtg/建造者
旅程/gtg/transition_table
旅程/nfa/点
旅程/gtg/模拟器
strscan
旅程/nfa/建造者
旅程/nfa/transition_table
旅程/nfa/点
旅程/gtg/transition_table
旅程/nfa/模拟器
strscan
可转发
active_support/core_ext/object/blank
active_support/core_ext/object/to_query
active_support/core_ext/object/to_param
active_support/core_ext/hash/slice
active_support/core_ext/module/remove_method
action_controller/metal/exceptions
临时文件
字符串
strscan
active_support/core_ext/hash/indifferent_access
active_support/hash_with_indifferent_access
active_support/core_ext/hash/keys
active_support/core_ext/string/access
active_support/多字节
active_support/变形器
action_dispatch/http/headers
action_controller/metal/exceptions
机架/工具
文件工具
设置
临时文件
机架/多部分
uri/common
active_support/core_ext/object/blank
active_support/core_ext/hash/keys
active_support/core_ext/hash/indifferent_access
active_support/core_ext/object/blank
active_support/core_ext/hash/keys
active_support/core_ext/object/可复制
大数
/home/ec2-user/oscar/config/environments/development.rb
active_support/全部
主动支持
active_support/时间
主动支持
日期
时间
active_support/core_ext/time/publicize_conversion_methods
active_support/core_ext/time/marshal
active_support/core_ext/time/acts_like
active_support/core_ext/object/acts_like
active_support/core_ext/时间/计算
active_support/core_ext/time/conversions
active_support/core_ext/time/zones
active_support/core_ext/date/acts_like
active_support/core_ext/object/acts_like
active_support/core_ext/date/freeze
active_support/core_ext/日期/计算
active_support/core_ext/date/conversions
日期
active_support/inflector/methods
active_support/core_ext/date/zones
active_support/core_ext/module/remove_method
active_support/core_ext/date/zones
active_support/core_ext/date_time/acts_like
日期
active_support/core_ext/object/acts_like
active_support/core_ext/date_time/计算
active_support/core_ext/date_time/conversions
active_support/core_ext/date_time/zones
active_support/core_ext/time/zones
active_support/core_ext/整数/时间
active_support/core_ext/numeric/time
active_support/持续时间
active_support/core_ext/时间/计算
active_support/core_ext/time/acts_like
active_support/core_ext
active_support/core_ext/array
active_support/core_ext/array/wrap
active_support/core_ext/array/access
active_support/core_ext/array/uniq_by
active_support/core_ext/array/conversions
active_support/core_ext/array/extract_options
active_support/core_ext/array/分组
枚举器
active_support/core_ext/array/random_access
active_support/core_ext/array/prepend_and_append
active_support/core_ext/benchmark
active_support/core_ext/big_decimal
active_support/core_ext/big_decimal/conversions
active_support/core_ext/class
active_support/core_ext/enumerable
active_support/core_ext/异常
active_support/core_ext/文件
active_support/core_ext/file/atomic
active_support/core_ext/文件/路径
active_support/core_ext/float
active_support/core_ext/float/rounding
active_support/core_ext/hash
active_support/core_ext/hash/conversions
active_support/xml_mini
active_support/时间
active_support/core_ext/array/wrap
active_support/core_ext/hash/reverse_merge
active_support/core_ext/object/blank
active_support/core_ext/string/inflections
active_support/core_ext/hash/deep_merge
active_support/core_ext/hash/deep_dup
active_support/core_ext/hash/diff
active_support/core_ext/hash/except
active_support/core_ext/hash/indifferent_access
active_support/core_ext/hash/keys
active_support/core_ext/hash/reverse_merge
active_support/core_ext/hash/slice
active_support/core_ext/整数
active_support/core_ext/integer/multiple
active_support/core_ext/integer/inflections
active_support/变形器
active_support/core_ext/整数/时间
active_support/core_ext/io
active_support/core_ext/内核
active_support/core_ext/kernel/reporting
active_support/core_ext/kernel/agnostics
active_support/core_ext/内核/调试器
active_support/core_ext/kernel/singleton_class
active_support/core_ext/load_error
active_support/core_ext/logger
active_support/core_ext/模块
active_support/core_ext/module/aliasing
active_support/core_ext/module/introspection
active_support/core_ext/module/匿名
active_support/core_ext/module/可达
active_support/core_ext/module/attribute_accessors
active_support/core_ext/module/attr_internal
active_support/core_ext/module/delegation
active_support/core_ext/模块/同步
线程
active_support/core_ext/module/aliasing
active_support/core_ext/array/extract_options
active_support/core_ext/module/deprecation
active_support/core_ext/module/deprecation
active_support/core_ext/module/remove_method
active_support/core_ext/module/method_names
active_support/core_ext/module/qualified_const
active_support/core_ext/name_error
active_support/core_ext/数字
active_support/core_ext/numeric/bytes
active_support/core_ext/numeric/time
active_support/core_ext/object
active_support/core_ext/object/acts_like
active_support/core_ext/object/blank
active_support/core_ext/object/可复制
active_support/core_ext/object/try
active_support/core_ext/object/inclusion
active_support/core_ext/object/conversions
active_support/core_ext/object/to_param
active_support/core_ext/object/to_query
active_support/core_ext/array/conversions
active_support/core_ext/hash/conversions
active_support/core_ext/object/instance_variables
active_support/core_ext/object/to_json
json
active_support/core_ext/object/to_param
active_support/core_ext/object/to_query
active_support/core_ext/object/with_options
active_support/option_merger
active_support/core_ext/hash/deep_merge
active_support/core_ext/proc
active_support/core_ext/kernel/singleton_class
active_support/core_ext/进程
active_support/core_ext/进程/守护进程
active_support/core_ext/范围
active_support/core_ext/range/blockless_step
active_support/core_ext/module/aliasing
active_support/core_ext/range/conversions
active_support/core_ext/range/include_range
active_support/core_ext/range/overlaps
active_support/core_ext/range/cover
active_support/core_ext/regexp
active_support/core_ext/rexml
active_support/core_ext/string
active_support/core_ext/string/conversions
active_support/core_ext/string/filters
active_support/core_ext/字符串/多字节
active_support/core_ext/字符串/多字节
active_support/core_ext/string/starts_ends_with
active_support/core_ext/string/inflections
active_support/core_ext/string/access
active_support/core_ext/string/xchar
fast_xs
active_support/core_ext/字符串/行为
active_support/core_ext/string/interpolation
active_support/core_ext/string/output_safety
active_support/core_ext/string/排除
active_support/core_ext/字符串/编码
active_support/core_ext/string/strip
active_support/core_ext/object/try
active_support/core_ext/string/inquiry
active_support/string_inquirer
active_support/core_ext/uri
active_support/core_ext/object/blank
active_support/deprecation
记录器
线程
记录器
active_support/core_ext/logger
active_support/core_ext/class/attribute_accessors
active_support/deprecation
文件工具
基准测试
zlib
active_support/core_ext/array/extract_options
active_support/core_ext/array/wrap
active_support/core_ext/benchmark
active_support/core_ext/异常
active_support/core_ext/class/attribute_accessors
active_support/core_ext/numeric/bytes
active_support/core_ext/numeric/time
active_support/core_ext/object/to_param
active_support/core_ext/string/inflections
active_support/cache/file_store
active_support/core_ext/file/atomic
active_support/core_ext/string/conversions
active_support/core_ext/object/inclusion
机架/工具
active_support/core_ext/object/可复制
active_support/core_ext/string/inflections
萨斯
sass/版本
日期
sass/实用程序
erb
设置
枚举器
字符串
rbconfig
uri
线程
路径名
sass/根
sass/util/subset_map
设置
sass/util/multibyte_string_scanner
strscan
sass/util/normalized_map
委托
sass/实用程序
sass/util/cross_platform_random
sass/记录器
sass/实用程序
sass/引擎
设置
摘要/sha1
sass/cache_stores
字符串
sass/cache_stores/base
sass/cache_stores/文件系统
文件工具
sass/cache_stores/内存
sass/cache_stores/链
sass/来源/位置
sass/来源/范围
sass/源/地图
sass/树/节点
sass/tree/root_node
sass/tree/rule_node
路径名
sass/tree/comment_node
sass/树/节点
sass/tree/prop_node
sass/tree/directive_node
sass/tree/media_node
sass/tree/supports_node
sass/tree/css_import_node
sass/tree/variable_node
sass/tree/mixin_def_node
sass/tree/mixin_node
sass/树/节点
sass/tree/trace_node
sass/树/节点
sass/tree/content_node
sass/tree/function_node
sass/tree/return_node
sass/tree/extend_node
sass/树/节点
sass/tree/if_node
sass/树/节点
sass/tree/while_node
sass/树/节点
sass/tree/for_node
sass/树/节点
sass/tree/each_node
sass/树/节点
sass/tree/debug_node
sass/tree/warn_node
sass/tree/import_node
sass/tree/charset_node
sass/tree/at_root_node
sass/tree/visitors/base
sass/树/访问者/执行
sass/tree/visitors/cssize
sass/树/访问者/扩展
sass/tree/visitors/convert
sass/tree/visitors/to_css
sass/tree/visitors/deep_copy
sass/tree/visitors/set_options
sass/tree/visitors/check_nesting
sass/选择器
sass/选择器/简单
sass/selector/abstract_sequence
sass/selector/comma_sequence
sass/选择器/序列
sass/selector/simple_sequence
sass/环境
设置
sass/脚本
sass/scss/rx
sass/脚本/函数
sass/脚本/值/助手
sass/脚本/解析器
sass/脚本/词法分析器
sass/scss/rx
sass/脚本/树
sass/脚本/树/节点
sass/脚本/树/变量
sass/脚本/树/funcall
sass/脚本/函数
sass/util/normalized_map
sass/脚本/树/操作
sass/script/tree/unary_operation
sass/脚本/树/插值
sass/script/tree/string_interpolation
sass/脚本/树/字面量
sass/script/tree/list_literal
sass/script/tree/map_literal
sass/脚本/值
sass/脚本/值/基础
sass/脚本/值/字符串
sass/脚本/值/数字
sass/脚本/值/颜色
sass/脚本/值/布尔值
sass/script/value/deprecated_false
sass/脚本/值/null
sass/脚本/值/列表
sass/脚本/值/arg_list
sass/脚本/值/映射
sass/scss
sass/scss/rx
sass/scss/script_lexer
sass/scss/script_parser
sass/scss/解析器
设置
sass/scss/static_parser
sass/script/css_parser
sass/脚本
sass/script/css_lexer
sass/scss/css_parser
sass/script/css_parser
sass/堆栈
sass/错误
sass/进口商
sass/进口商/基地
sass/importers/文件系统
设置
sass/importers/deprecated_path
sass/共享
sass/媒体
sass/支持
sass/railtie
sass/功能
设置
链轮
链轮/版本
链轮/eco_template
倾斜
倾斜/字符串
倾斜/模板
倾斜/erb
倾斜/模板
倾斜/etanni
倾斜/模板
倾斜/haml
倾斜/模板
倾斜/css
倾斜/模板
倾斜/csv
倾斜/模板
倾斜/咖啡
倾斜/模板
倾斜/nokogiri
倾斜/模板
倾斜/建造者
倾斜/模板
倾斜/标记
倾斜/模板
倾斜/液体
倾斜/模板
倾斜/半径
倾斜/模板
倾斜/降价
倾斜/模板
倾斜/纺织
倾斜/模板
倾斜/rdoc
倾斜/模板
倾斜/维基
倾斜/模板
倾斜/yajl
倾斜/模板
倾斜/asciidoc
倾斜/模板
倾斜/平面
倾斜/模板
链轮/ejs_template
倾斜
链轮/jst_processor
倾斜
链轮/工具
倾斜
倾斜
链轮
action_dispatch/middleware/body_proxy
active_support/whiny_nil
active_support/deprecation
active_support/core_ext/time/zones
知乎
tzinfo/ruby_core_support
日期
tzinfo/offset_rationals
tzinfo/time_or_datetime
日期
时间
tzinfo/timezone_definition
tzinfo/timezone_offset_info
tzinfo/timezone_transition_info
日期
tzinfo/timezone_index_definition
tzinfo/timezone_info
tzinfo/data_timezone_info
tzinfo/linked_timezone_info
tzinfo/timezone_period
tzinfo/时区
日期
tzinfo/info_timezone
tzinfo/data_timezone
tzinfo/linked_timezone
tzinfo/timezone_proxy
tzinfo/country_index_definition
tzinfo/country_info
tzinfo/国家/地区
tzinfo/country_timezone
摘要/md5
active_support/core_ext/module/delegation
active_support/core_ext/object/blank
active_support/core_ext/class/attribute_accessors
机架/请求
机架/工具
时间
action_controller/metal/exceptions
active_support/core_ext/异常
active_support/core_ext/object/blank
active_support/core_ext/hash/keys
active_support/core_ext/module/attribute_accessors
active_record/railties/controller_runtime
active_support/core_ext/module/attr_internal
active_record/log_subscriber
active_support/core_ext/module/attribute_accessors
active_support/core_ext/类/属性
链轮
链轮/底座
链轮/资产属性
路径名
链轮/捆绑资产
链轮/资产
时间
设置
链轮/错误
文件工具
设置
zlib
链轮/缓存
sprockets/processed_asset
链轮/资产
链轮/工具
链轮/加工
链轮/引擎
链轮/mime
机架/mime
链轮/处理器
倾斜
链轮/工具
链轮/服务器
时间
uri
链轮/静态资产
链轮/资产
文件工具
zlib
链轮/轨迹
链轮/错误
路径名
路径名
链轮/charset_normalizer
倾斜
链轮/上下文
base64
机架/工具
链轮/错误
链轮/工具
路径名
设置
链轮/directive_processor
路径名
关键词
倾斜
yaml
链轮/索引
链轮/底座
链轮/安全冒号
倾斜
远足
记录器
路径名
倾斜
路径名
远足/扩展
hike/normalized_array
远足/索引
路径名
远足/路径
路径名
hike/normalized_array
摘要/md5
active_support/cache/file_store
action_controller/railtie
active_support/inflector/methods
active_support/依赖项
机架/工具
线程
机架/body_proxy
安全随机
active_support/core_ext/string/access
active_support/core_ext/object/blank
active_support/core_ext/time/conversions
active_support/core_ext/object/blank
action_dispatch/http/request
action_dispatch/middleware/exception_wrapper
active_support/deprecation
action_dispatch/http/request
action_dispatch/middleware/exception_wrapper
active_support/core_ext/module/delegation
active_support/core_ext/hash/keys
active_support/core_ext/object/blank
action_dispatch/middleware/session/abstract_store
机架/工具
机架/请求
机架/会话/抽象/id
时间
机架/请求
机架/响应
安全随机
action_dispatch/中间件/cookies
active_support/core_ext/object/blank
机架/会话/cookie
openssl
机架/请求
机架/响应
机架/会话/抽象/id
active_support/core_ext/hash/conversions
action_dispatch/http/request
active_support/core_ext/hash/indifferent_access
设置
active_support/core_ext/class/attribute_accessors
active_support/core_ext/object/blank
action_dispatch/http/mime_types
机架/工具
摘要/md5
active_support/core_ext/object/blank
线程
监控
设置
active_support/core_ext/module/deprecation
时间
机架/工具
机架/mime
yaml
i18n/core_ext/哈希
i18n/core_ext/kernel/surpress_warnings
active_support/core_ext/hash/except
active_support/core_ext/object/blank
active_support/core_ext/object/inclusion
active_support/core_ext/enumerable
active_support/变形器
action_dispatch/路由/重定向
action_dispatch/http/request
active_support/core_ext/uri
机架/工具
导轨/发电机
导轨/发电机
导轨/发电机
rails/命令/生成
导轨/发电机
active_support/core_ext/object/inclusion
rails/generators/controller/controller/controller_generator
发电机/控制器/控制器/controller_generator
rails/generators/controller/controller_generator
发电机/控制器/controller_generator
rails/generators/rails/controller/controller_generator
active_support/core_ext/module/introspection
rails/generators/base
rails/generators/generated_attribute
active_support/时间
active_support/core_ext/object/inclusion
active_support/core_ext/object/blank
雷神/外壳/基本
临时文件
io/控制台
然后我得到错误:
/usr/local/share/ruby/gems/2.0/gems/activesupport-3.2.17/lib/active_support/dependencies.rb:253:in `require': 无法加载这样的文件 -- io/console (LoadError )
我注意到大多数 gem 都有一个以 gem 命名的文件。例如,多边形有“polygon.rb”:
ls -al /usr/local/share/ruby/gems/2.0/gems/polyglot-0.3.4/lib/polyglot.rb
-rw-r--r-- 1 root root 2121 Apr 17 15:13 /usr/local/share/ruby/gems/2.0/gems/polyglot-0.3.4/lib/polyglot.rb
sass 有“sass.rb”:
[root@ip-172-31-38-140 奥斯卡]# ls -al /usr/local/share/ruby/gems/2.0/gems/sass-3.3.5/lib/sass.rb
-rw-r--r-- 1 root root 4188 Apr 17 15:23 /usr/local/share/ruby/gems/2.0/gems/sass-3.3.5/lib/sass.rb
但不是 io 控制台:
[root@ip-172-31-38-140 奥斯卡]# ls -al /usr/local/share/ruby/gems/2.0/gems/io-console-0.4.2/lib/
drwxr-xr-x 3 root root 4096 Apr 17 15:44 .
drwxr-xr-x 3 root root 4096 Apr 17 15:44 ..
drwxr-xr-x 2 root root 4096 Apr 17 15:44 控制台
[root@ip-172-31-38-140 oscar]# ls -al /usr/local/share/ruby/gems/2.0/gems/io-console-0.4.2/lib/console/
drwxr-xr-x 2 root root 4096 Apr 17 15:44 .
drwxr-xr-x 3 root root 4096 Apr 17 15:44 ..
-rw-r--r-- 1 根根 331 Apr 17 15:44 size.rb
我看到了这个文件:
/usr/local/share/ruby/gems/2.0/gems/io-console-0.4.2/console.so
所以我尝试了:
ln -s /usr/local/share/ruby/gems/2.0/gems/io-console-0.4.2/console.so /usr/share/ruby/gems/2.0/console
但这没有任何作用。我仍然得到同样的错误。
完整的堆栈跟踪:
rails 生成控制器欢迎索引
/usr/local/share/ruby/gems/2.0/gems/activesupport-3.2.17/lib/active_support/dependencies.rb:251:in `require': 无法加载此类文件 -- io/console (LoadError )
from /usr/local/share/ruby/gems/2.0/gems/activesupport-3.2.17/lib/active_support/dependencies.rb:251:in `block in require'
from /usr/local/share/ruby/gems/2.0/gems/activesupport-3.2.17/lib/active_support/dependencies.rb:236:in `load_dependency'
from /usr/local/share/ruby/gems/2.0/gems/activesupport-3.2.17/lib/active_support/dependencies.rb:251:in `require'
from /usr/local/share/ruby/gems/2.0/gems/thor-0.19.1/lib/thor/shell/basic.rb:2:in `<top (required)>'
from /usr/local/share/ruby/gems/2.0/gems/activesupport-3.2.17/lib/active_support/dependencies.rb:251:in `require'
from /usr/local/share/ruby/gems/2.0/gems/activesupport-3.2.17/lib/active_support/dependencies.rb:251:in `block in require'
from /usr/local/share/ruby/gems/2.0/gems/activesupport-3.2.17/lib/active_support/dependencies.rb:236:in `load_dependency'
from /usr/local/share/ruby/gems/2.0/gems/activesupport-3.2.17/lib/active_support/dependencies.rb:251:in `require'
from /usr/local/share/ruby/gems/2.0/gems/thor-0.19.1/lib/thor/shell/color.rb:1:in `<top (required)>'
from /usr/local/share/ruby/gems/2.0/gems/thor-0.19.1/lib/thor/shell.rb:17:in `shell'
from /usr/local/share/ruby/gems/2.0/gems/thor-0.19.1/lib/thor/base.rb:439:in `start'
from /usr/local/share/ruby/gems/2.0/gems/railties-3.2.17/lib/rails/generators.rb:171:in `invoke'
from /usr/local/share/ruby/gems/2.0/gems/railties-3.2.17/lib/rails/commands/generate.rb:12:in `<top (required)>'
from /usr/local/share/ruby/gems/2.0/gems/activesupport-3.2.17/lib/active_support/dependencies.rb:251:in `require'
from /usr/local/share/ruby/gems/2.0/gems/activesupport-3.2.17/lib/active_support/dependencies.rb:251:in `block in require'
from /usr/local/share/ruby/gems/2.0/gems/activesupport-3.2.17/lib/active_support/dependencies.rb:236:in `load_dependency'
from /usr/local/share/ruby/gems/2.0/gems/activesupport-3.2.17/lib/active_support/dependencies.rb:251:in `require'
from /usr/local/share/ruby/gems/2.0/gems/railties-3.2.17/lib/rails/commands.rb:29:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
【问题讨论】:
-
我通过将其添加到我的 Gemfile 来解决此问题: gem 'io-console' 然后我运行 bundle install ,然后一切正常。这就是我更喜欢在 Clojure 中编程的原因——我不必处理这些奇怪的依赖问题。
-
将此添加到答案中,因为它也解决了我的问题。谢谢@cerhovice
标签: ruby-on-rails ruby-on-rails-3 gem