【问题标题】:JSON format not displaying all model attributes (Rails 4)JSON 格式不显示所有模型属性(Rails 4)
【发布时间】:2018-01-18 22:12:38
【问题描述】:

我在运行 Rails 4.2.7 时遇到了一个奇怪的问题:当我查看特定模型的 HTML 索引视图时,一切似乎都很好。当我通过 JSON 请求相同的数据时,我只得到属性的一个子集。

我的索引操作只是:

def index
  @coverages = Coverage.all
end

如果我用它来称呼它

http://localhost:3000/coverages

一切都在那里。如果我用

调用它

http://localhost:3000/coverages.json

除了实例的:id:created_at:updated_at:url(例如http://localhost:3005/coverages/1.json)之外,我只返回了7 个属性。

JSON 方法是否会以某种方式截断属性?我从来不记得以前遇到过这种情况。


后记:

我将索引操作修改为:

def index
  @coverages = Coverage.all
  respond_to do |format|
    format.html {render :index}   
    format.json {render json: @coverages}
  end
end

现在我得到了所有的属性。可能我不包含显式格式语句违反了 Rails 最佳实践,但我仍然对我的原始结果感到好奇。

【问题讨论】:

  • 您可能有某种序列化程序正在序列化@coverages 对象。寻找类似*.jbuilder 的东西。如果你被难住了,你能把你的代码完整地放在 GitHub 上,这样别人就可以登上顶峰了吗?这可能是很多事情。

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


【解决方案1】:

我在这里发布我找到的解决方案(在问题的附言中)以防万一。关于为什么原始配置不起作用仍然是一个悬而未决的问题。


将索引操作修改为:

def index
  @coverages = Coverage.all
  respond_to do |format|
    format.html {render :index}   
    format.json {render json: @coverages}
  end
end

解决了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-27
    • 1970-01-01
    • 1970-01-01
    • 2014-09-07
    • 2020-12-28
    相关资源
    最近更新 更多