为什么project / 12不显示该项目的所有字段?

时间:2015-02-25 21:21:04

标签: ruby-on-rails json

重要提示: ID无关紧要,在所有情况下均相同。

我只看到名字字段,而不是描述,小时等,即使这些都不是空的。

我已经通过资源声明了所有标准路线(默认格式为json),而不是单独声明。

我甚至尝试过创建一个projects / show.json.jbuilder文件:

json.name @project.name
json.description @project.description
json.hours @project.hours
json.ownername @project.ownername

我的项目/展示方法:

@project = Project.find(params[:id])
render :json => @project

第一次编辑: 在我的show方法中定义@project之前,我添加了logger.debug。

现在在本地服务器的命令提示符窗口中,我看到了:

Started GET "/projects/12" for 127.0.0.1 at 2015-02-25 16:36:45 -0500
ActiveRecord::SchemaMigration Load (0.2ms)  SELECT  "schema_migrations".* FROM "schema_migrations"
Processing by ProjectsController#show as HTML
Parameters: {"id"=>"12"}
Project Load (0.1ms)  SELECT  "projects".* FROM "projects"  WHERE   "projects"."id" = ? LIMIT 1  [["id", 12]]
#<Project:0x007f95477e72f8>
User Load (0.2ms)  SELECT  "users".* FROM "users"  WHERE "users"."id"   = ? LIMIT 1  [["id", 51]]
Completed 200 OK in 42ms (Views: 15.2ms | ActiveRecord: 0.9ms)

我想知道为什么我会看到&#34;用户负载&#34;部分,因为我的Project模型不属于User对象或与它有任何关系(尽管在过去之前它可能已经删除了该关系)。另外,我不认为我看到了

#<Project:0x007f95477e72f8> 

更早的版本。

1 个答案:

答案 0 :(得分:1)

我以这种方式解决了我的问题。

基本上,projects / 12.json目前有效,而不是项目/ 12。由于我对获取数据客户端更感兴趣,所以对我来说没问题。我需要一个project / show.html.erb页面,它通过视图助手方法调用所有项目数据,以便HTML工作。

def show
@project = Project.find(params[:id])

    respond_to do |format|
    format.html
    format.json 
 end
end

projects / 12.json有效,因为我有一个projects / show.json.jbuilder文件(正如我在原始问题帖子中分享的那样):

json.name @project.name
json.description @project.description
json.hours @project.hours
json.ownername @project.ownername