2013-12-23 29 views
0

現在我試圖設置切換按鈕來關注某人。未定義的方法`friend_id'爲#<ActiveRecord :: Relation:0x007fc4b54935f0>

<div class="onoff"> 
      <% unless session[:user_id] == member.id %>  
       <% if @isFr.friend_id == member.id %> 
        <%= link_to'off', {:controller => 'members', :action => 'index', :id => 
        member.id}, class: "btn btn-midium btn-primary"%><br/> 
        ※following 
       <% else %> 
        <%= link_to'on', {:controller => 'members', :action => 'index', :id => 
        member.id}, class: "btn btn-midium btn-primary"%><br/> 
        ※not following 
       <% end %> 
      <% end %> 
     </div--> 

但是我收到了一條錯誤消息。

undefined method `friend_id' for #<ActiveRecord::Relation:0x007fc4b54935f0> 

,看着@isFr,它有

>> @isFr 
=> [#<Friend id: 196, member_id: 2, friend_id: 3, created_at: "2013-12-23 01:28:18", updated_at: "2013-12-23 01:28:18">] 

所以,我無法從@isFr提取friend_id值。 我該如何解決這個問題?

☆members_controller

def index 
    if !checklogin? then return end 
    @members = Member.where("id >=1").order("created_at desc").paginate(:page => params[:page], :per_page => 10).scoped 

     if Friend.where(:member_id => session[:user_id], :friend_id => params[:id]).exists? then 
     Friend.where(:member_id => session[:user_id], :friend_id => params[:id]).each do |f| 
     f.destroy 
     end 
    else 
     Friend.new({:member_id => session[:user_id], :friend_id =>params[:id].to_i}).save 
    end 

     @isFr =Friend.where(:member_id => session[:user_id], :friend_id => @members.map(&:id)).limit(1) 

     respond_to do |format| 
      format.html # index.html.erb 
      format.json 
     end 

    end 

☆index.html.erb(部件#指數)

<table class="table"> 
    <tr> 
    <th>寫真</th> 
    <th>名前</th> 
    <th>分野</th> 
    <th>場所</th> 
    <th>経験</th> 
    <th></th> 
    <%# if Member.find(session[:user_id]).admin %> 
    <%# end %> 
    </tr> 
<% @members.each do |member| %> 
    <tr> 
    <td> 
    <% if member.provider %> 
     <%=image_tag member.image ,:size=>'30x30'%> 
    <% elsif member.avatar_file_name %> 
     <%= image_tag member.avatar.url(:thumb), :width =>'30px', :height =>'30px' %> 
    <% else %> 
     <%= image_tag "love.png", :size=>'30x30' %> 
    <% end %> 
    </td> 
    <td> 
     <a href="/members/<%= member.id %>"><%= member.name %></a> 
     <% if member.provider == "facebook" %> 
      <a target="_blank" href="http://www.facebook.com/<%=member.uid %>"> <%=image_tag "fb.png" ,:size=>'20x20'%> </a> 
     <% elsif member.provider == "twitter" %> 
      <a target="_blank" href="http://www.twitter.com/<%=member.name %>"> <%=image_tag "twitter.png" ,:size=>'20x20'%> </a> 
     <% end %> 
    </td> 

    <td><%= member.field %></td> 
    <td> 
     <% if member.url.present? %> 
      <%=link_to member.place ,member.url ,:target=>["_blank"] %> 
     <% else %> 
      <%= member.place %> 
     <% end %> 
     </td> 
     <td><%= member.experience %></td> 
     <td> 
     <div class="onoff"> 
      <% unless session[:user_id] == member.id %>  
       <% if @isFr.friend_id == member.id %> 
        <%= link_to'off', {:controller => 'members', :action => 'index', :id => 
        member.id}, class: "btn btn-midium btn-primary"%><br/> 
        ※following 
       <% else %> 
        <%= link_to'on', {:controller => 'members', :action => 'index', :id => 
        member.id}, class: "btn btn-midium btn-primary"%><br/> 
        ※not following 
       <% end %> 
      <% end %> 
     </div--> 
     <%#= member.friends.count %> 
    </td> 

    <% if Member.find(session[:user_id]).admin %> 
     <td><%= link_to 'Destroy', member, method: :delete, data: { confirm: 'Are you sure?' } %></td> 
    <% end %> 

    </tr> 
<% end %> 
</table> 

回答

1

的問題是在該線

@isFr =Friend.where(:member_id => session[:user_id], :friend_id => @members.map(&:id)).limit(1) 

這將響應一個ActiveRecord的: :關係,但你需要一個Friend對象。試試這個

@isFr =Friend.where(:member_id => session[:user_id], :friend_id => @members.map(&:id)).first 
+0

謝謝你的評論。我按照你的指示,但是在我按下button.NoMethodError之後,得到了這個錯誤信息/ members 未定義的方法'friend_id'爲nil:NilClass。 –

+0

這是因爲您沒有與您的條件匹配的Friend對象。請再次檢查您的條件 –

+0

非常感謝。 –

相關問題