我在 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) %>
我对其他对象(博客是一个)使用完全相同的技术,唯一的区别是文章是嵌套资源(在“博客”下)。我的路线是:
resources :blogs do
resources :articles do
resources :metafields
end
end
我正在撕扯头发,试图确定两者之间的不同之处,但无济于事。有任何想法吗?
编辑:似乎类似于Active Resource return nil object,但没有给出答案:(