Lie*_*oen 6 ruby jruby syntax-error
new_hash = {:simon => "Talek", :lorem => "Ipsum"}
Run Code Online (Sandbox Code Playgroud)
可以替换为
new_hash = {simon: "Talek", lorem: "Ipsum"}
Run Code Online (Sandbox Code Playgroud)
还有更短的写法吗
:on => :collection
Run Code Online (Sandbox Code Playgroud)
应用相同的逻辑会引发错误:
on: :collection
Run Code Online (Sandbox Code Playgroud)
更新以提供更多信息:
在我的 routes.rb 中:
get 'detail', { on: :member }
Run Code Online (Sandbox Code Playgroud)
不起作用。也没有
get 'detail', on: :member
Run Code Online (Sandbox Code Playgroud)
错误:
Exiting
SyntaxError: C:/Workspace/OE_11/CyberTrack_Rails3/config/routes.rb:23:
syntax error, unexpected ':'
get 'detail', { on: :member }
Run Code Online (Sandbox Code Playgroud)
或者
Exiting
SyntaxError: C:/Workspace/OE_11/CyberTrack_Rails3/config/routes.rb:23:
syntax error, unexpected ':'
get 'detail', on: :member
Run Code Online (Sandbox Code Playgroud)
这对我来说效果很好:
def get(*args) p *args end
get 'detail', on: :member
# "detail"
# { :on => :member }
RUBY_ENGINE
# => jruby
JRUBY_VERSION
# => 1.6.6
Run Code Online (Sandbox Code Playgroud)
编辑:现在您提供了错误消息,看来您没有运行 Ruby 1.9。新的哈希语法是在 Ruby 1.9 中引入的,它在旧版本中不起作用。您需要确保您正在运行 Ruby 1.9,方法是验证您是否正在运行正确的 Ruby 实现(例如 YARV 支持 1.9,MRI 不支持),或者如果您正在运行支持多种语言版本的 Ruby 实现(例如JRuby)您正在传递正确的命令行标志(例如jruby --1.9)。
| 归档时间: |
|
| 查看次数: |
3857 次 |
| 最近记录: |