2011-12-22 5 views
1

私は、所有するhas_manyというモデルのユーザーを所有しています(所属はユーザーに属しています)。私は、ユーザーの情報と彼のすべての所有物のリストを示すショーユーザーページを持っています。私は、ユーザーが所属するページにアクセスするために所属する各ユーザーへのリンクを追加しましたが、このリンクは現時点では機能しません。コントローラー内の子オブジェクトのIDにアクセスする

ユーザーと所属の両方が、ユーザーのメンバーではないリソースとして定義されています。ここで

は、コードの一部です:

ユーザのshowページが含まれています

<% unless @user.belongings.empty? %> 
    <table class="belongings" summary="User's objects and services"> 
    <%= render @belongings %> 
    </table> 
    <%= will_paginate @belongings %> 
<% end %> 

をこの部分を使用して:

<td class="belongings"> 
    <span class="id"><strong>Object ID: </strong><%= belonging.id %></span><br/> 
    <span class="name"><strong>Name: </strong><%= belonging.name %></span><br/> 
    <p> 
    <span class="description"><strong>Description: </strong><%= belonging.description %></span> 
    </p> 
    <span class="price"><strong>Price per week: </strong><%= belonging.price %></span> <br/> 
    <span class="caution"><strong>Caution: </strong><%= belonging.caution %></span><br/> 
    <span class="timestamp"> 
     Posted <%= time_ago_in_words(belonging.created_at) %> ago. 
    </span> 
    </td> 
    <td> 
    <%= link_to "Show item", belonging_path %> 
    </td> 
</tr> 

問題が属するのでの属するIDにアクセスする方法でありますコントローラ:

def show 
    @user = User.find(params[:id]) 
    @belonging = @user.belongings.find(params[:id]) 
    @title = @belonging.name 
    end 

==>:idは常にユーザーのIDを参照します。私は使用しようとしました:user_idを使ってユーザーにアクセスしましたが、 "IDなしでユーザーを見つけることができません"があり、belongs_idを使用してアクセスしようとすると、IDなしで所属を見つけることができません。

任意の助けに感謝し、私はこれが基本ですけど、私はレールに新たなんだと私は時間のためにこれを解決する方法を理解するために検索してきた...

答えて

2

:collectionオプションを使用してコレクションを部分的に渡すと、コレクション内の各メンバーに1つの部分が挿入されます。

<%= render :partial => "belonging", :collection => @belongings %> 

_belonging.html.erbが指定されています。

複数のコレクションでpartialを呼び出すと、その部分の個々のインスタンスは、部分的に名前を付けられた変数を使用して、レンダリングされるコレクションのメンバーにアクセスできます。この場合、partialは_belongingであり、_obonging partial内では、所属を参照してレンダリングされているインスタンスを取得することができます。

これで、使用可能な変数を所持しているので、それを使用して所属を参照します。あなたの部分的な変更ではライン:

<%= link_to "Show item", belonging_path(belonging.id) %> 

<%= link_to "Show item", belonging_path %> 

belongings_controller.rbshowアクションはないユーザーを所属IDを受け取ることになります。

+0

ありがとうSyed、あなたは私の一日を救った!私は本当にあなたが与えた完全な説明に感謝します、私は少し失われて混乱していたことに気づいたかもしれません! – citraL

+0

@citraLよろしくお願いします。お役に立てて嬉しいです。 –

関連する問題