【问题标题】:Error: Parse error Expecting 'EOF', '}', ':', ',', ']'错误:解析错误期望 'EOF'、'}'、':'、','、']'
【发布时间】:2015-06-17 22:38:00
【问题描述】:

遵循 Rails 入门教程,并在提交表单时出现此错误:https://cloudup.com/cdZ-xQkfnmm。除了将“文章”更改为“用户”之外,我的所有内容都与教程相同。

<%= form_for :user, url: users_path do |f| %>
  <p>
    <%= f.label :title %><br>
    <%= f.text_field :title %>
  </p>

  <p>
    <%= f.label :text %><br>
    <%= f.text_area :text %>
  </p>

  <p>
    <%= f.submit %>
  </p>
<% end %>


class UsersController < ApplicationController
    def new
    end

    def create
        render plain: params[:user].inspect
    end
end

我不确定我现在还能提供哪些其他信息。

【问题讨论】:

  • 您的哈希不是有效的 JSON。试试吧……render plain: params[:user].to_json
  • 这可以将它导入 json,但是当它在下一步创建新用户时给我一个错误。
  • 所以这归结为,在自定义迁移中创建表而不是使用命令行时,我得到了非常奇怪的结果。我试图向后工作,认为这实际上是问题所在,但我认为问题比这更深。
  • @ELepolt 你明白了吗?为什么会出错?我遇到了同样的错误(是的,我可以将其更改为“to_json”,但我想了解错误的原因)

标签: ruby-on-rails json parsing ruby-on-rails-4


【解决方案1】:

我遇到过类似的问题,但后来发现我的浏览器的 JSONView 扩展没有将其识别为有效的 json,因此它抛出了错误。通过关闭它,事情开始正常工作:)

【讨论】:

    【解决方案2】:

    这也有效:

    render json: params[:user]
    

    【讨论】:

      【解决方案3】:

      在你的控制器中尝试这一行:

      render plain: params[:article].to_json
      

      我收到了这样的回复:

      {
      title: "title test",
      text: "test of the text"
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-06-23
        • 2015-05-26
        • 2012-05-11
        • 2018-04-22
        • 2018-12-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多