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) %>

私は他のオブジェクト (ブログは 1 つ) とまったく同じ手法を使用しています。唯一の違いは、Article がネストされたリソース (「ブログ」の下) であることです。私のルートは次のとおりです。

resources :blogs do
    resources :articles do
        resources :metafields
    end
end

私は、この 2 つの違いを立証しようとして髪をかきむしっていますが、役に立ちません。何か案は?

編集: Active Resource return nil objectに似ているようですが、答えはありません:(

4

0 に答える 0