我在RoR 3.2中使用ActiveResource从Shopify API获取JSON响应,如下所示:
def show
@article = Article.find(params[:id],:params => {:blog_id => params[:blog_id]})
logger.debug @article
respond_to do |format|
format.html # show.html.erb
format.json { render @article }
end
end
正在使用的ActiveResource采用前缀'blog_id',而'id'是文章ID(因为文章ID是唯一的,但仍然是疯狂的。)
当我使用记录器将@article打印到控制台时,我看到:
#<Article:0x465b520 @attributes={"author"=>" Shopify API", "body_html"=>"Test",
"created_at"=>"2013-06-26T06:41:12-04:00", "id"=>8204945, "published_at"=>"2013
-06-26T06:41:12-04:00", "summary_html"=>nil, "template_suffix"=>nil, "title"=>"t
est", "updated_at"=>"2013-06-26T06:41:12-04:00", "user_id"=>nil, "tags"=>""}, @
prefix_options={:blog_id=>"2812103"}, @persisted=true>
万岁!但是,当'show.html.erb'尝试渲染@article时,我什么也得不到。如果我渲染'@ article.inspect',我会得到'nil'
用于“访问”的链接是:
<%= link_to 'Show', blog_article_path(@blog.id, article.id) %>
我正在使用与其他对象完全相同的技术(Blog是一个),唯一的区别是Article是嵌套资源(在'Blog'下)。我的路线是:
resources :blogs do
resources :articles do
resources :metafields
end
end
我正在试图弄清楚两者之间的不同之处,但无济于事。有什么想法吗?
修改:与Active Resource return nil object类似,但未给出答案:(