【问题标题】:Syntax Error ruby on rails unexpected ':', expecting '}' when calling render json:语法错误 ruby​​ on rails 意外':',调用渲染 json 时需要 '}':
【发布时间】:2012-09-11 04:12:59
【问题描述】:

错误:

SyntaxError in UsersController#index
 /home/ubuntu/ruby/users/app/controllers/users_controller.rb:7: syntax error, unexpected ':', expecting '}'
      format.json{render json: UsersDatatable.new(view_context)}
                              ^

我正在尝试让 dataTables 插件与我的 rails 应用程序一起使用 (railcast #340)。我一遍又一遍地倾倒,不知道这个错误可能来自哪里。它看起来与http://railscasts.com/episodes/340-datatables?view=asciicast 中列出的代码没有任何不同(除了我将名称从 Products 更改为 Users arounds。我完全碰壁了。我的代码似乎除了名称之外的所有代码都相同,但是它不起作用!(在我尝试开始设置 AJAX 部分之前它起作用了)

编辑: 最初我使用 1.8.7 和 rails (3.2.7),但后来升级到 ruby​​ 1.9.3,所以不知道为什么我仍然收到该错误

【问题讨论】:

  • 你使用的是什么版本的 ruby​​?
  • render :json => UsersDatatable.new(view_context) ?
  • 使用 ruby​​ 1.8.7 和 rails (3.2.7),问题可能出自于​​此吗?我尝试使用 :json => 但这也没有用
  • 您现在遇到的错误是什么?问题肯定是由于您的 ruby​​ 版本。
  • 好的,我更新了替代品 ruby​​ 路径 sudo update-alternatives --config ruby​​ 并选择了最新的 ruby​​,现在 -v 给了我 ruby​​ 1.9.3p0,但我仍然遇到同样的错误。跨度>

标签: ruby-on-rails ruby-on-rails-3 railscasts


【解决方案1】:

如果您使用的是 ruby​​ 1.8.7,那么语法 json: ... 将不起作用。

这应该可以代替(正如@Jérôme Boé 指出的那样)

format.json { render :json => UsersDatatable.new(view_context) }

【讨论】:

  • 我对 Jerome 发表了评论,我还安装了 rvm(在上述之后),但是当我执行 'ruby -v' 时,我对 RVM 所做的更改似乎并没有坚持下去,我在做什么错了吗?
  • 尝试输入:which ruby,看看它会给你什么。可能您正在运行系统上安装的 ruby​​ 版本。我不再使用 rvm,但我相信您可以更改正在使用的版本:rvm use 1.9.3(或您想使用的任何版本)。
  • 无论如何,如何让 rvm 使用正确版本的 ruby​​ 的问题不是你在这里问的问题。显然问题出在 ruby​​ 版本上。如果您在使用 rvm 或安装特定版本的 ruby​​ 时遇到问题,您应该发布一个单独的问题(并将这个问题标记为该问题的答案)。
  • 我升级了它并且'which ruby​​'给了我ruby-1.9.3-p194/bin/ruby,但是当我运行服务器时,我仍然得到上述错误。似乎应该归咎于 ruby​​ 版本,但我不确定现在是否是这种情况
  • 好的,首先,假设您出于某种原因仍在运行 1.8.7,修复 (:json =>) 应该可以工作。你说没有。你得到什么错误?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-10
  • 2012-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多