【发布时间】:2018-02-06 14:15:44
【问题描述】:
这里是代码
def index
@projects = Project.all.includes(:todos)
respond_to do |format|
format.html
format.json { render json @projects => @projects.to_json(:include => :todos) }
end
end
我尝试像这样使用 Ion 从我的 Android 应用程序获取 JSON
String serverAdress = "https://the-url.com/"
Ion.with(context)
.load(serverAdress)
.asJsonObject()
但是得到解析错误,因为没有从那里返回。如果有单独的控制器方法专门返回 JSON 响应,我可以获取 JSON,因此此代码有效
def indexJson
@projects = Project.all.includes(:todos)
render json @projects => @projects.to_json(:include => :todos)
end
但同样,我无法在那里发布任何内容(我的意思是其他单独的 JSON 控制器方法)。我在 rails 设置或获取数据时错过了什么?谢谢。
【问题讨论】:
-
你在第二个例子中得到了什么 JSON?它在我看来有点古怪,因为它使用一组项目作为键,并将它们的 JSON 化自我作为值。我不确定这是不是核心问题,因为我对 Android 代码一无所知,但也许值得一看……(另外,请注意:
Project.includes(:todos)在这里就足够了 - 不需要@987654325 @ :) ) -
@SRack 默认发送,我懒得改了。似乎 rails 需要某种已定义的请求。我不知道 Rails 的标头中必须包含什么才能将其确认为 JSON 请求。请参阅下面的评论。
标签: android ruby-on-rails json ruby-on-rails-5