哈希的奇数列表

Rob*_*Rob 11 ruby ruby-on-rails

我正试图从github上运行一个rails网站,我遇到了这些错误:

WARNING: 'task :t, arg, :needs => [deps]' is deprecated.  Please use 'task :t, [args] => [deps]' instead.
    at /Library/Ruby/Gems/1.8/gems/sunspot_rails-1.2.1/lib/sunspot/rails/tasks.rb:41 rake aborted! /Users/robertgrzesik/Documents/RubyOnRails/IndieOption/app/helpers/advertisements_helper.rb:15: odd number list for Hash
          user_id: current_user.id,
                  ^ /Users/robertgrzesik/Documents/RubyOnRails/IndieOption/app/helpers/advertisements_helper.rb:15: syntax error, unexpected ':', expecting '}'
          user_id: current_user.id,
                  ^ /Users/robertgrzesik/Documents/RubyOnRails/IndieOption/app/helpers/advertisements_helper.rb:16: syntax error, unexpected ':', expecting '='
          page: request.url
               ^ /Users/robertgrzesik/Documents/RubyOnRails/IndieOption/app/helpers/advertisements_helper.rb:17: syntax error, unexpected '}', expecting kEND
        })
         ^ /Users/robertgrzesik/Documents/RubyOnRails/IndieOption/app/helpers/advertisements_helper.rb:20: odd number list for Hash
          page: request.url
               ^ /Users/robertgrzesik/Documents/RubyOnRails/IndieOption/app/helpers/advertisements_helper.rb:20: syntax error, unexpected ':', expecting '}'
          page: request.url
               ^ /Users/robertgrzesik/Documents/RubyOnRails/IndieOption/app/helpers/advertisements_helper.rb:21: syntax error, unexpected '}', expecting kEND
        })
         ^
Run Code Online (Sandbox Code Playgroud)

对于此代码:

if ad
  if current_user
    ad.impressions.create({
      user_id: current_user.id,
      page: request.url
    })
  else
    ad.impressions.create({
      page: request.url
    })
  end
  link_to external_redirect_advertisement_url(ad) do
    image_tag ad.image.url(format)
  end
else
  nil
end
end
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Dav*_*ton 29

您正在尝试将1.9哈希语法(key: value)与1.8 Ruby(:key => value)一起使用.

  • 我在ruby 1.9.3上并得到同样的错误: (2认同)

Emi*_*ily 6

你在运行什么版本的Ruby?哈希看起来是正确的,但foo: 'bar'哈希语法只有1.9+.如果您使用的是Ruby 1.8.x,则需要升级.