1

我在 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,但没有给出答案:(

4

0 回答 0