重要提示: 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>
更早的版本。
答案 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