मैं उन उपयोगकर्ताओं को सूचीबद्ध करना चाहता हूं जिनका मैं अनुसरण कर रहा हूं

मेरे मॉडल:

Relationship.rb

belongs_to :follower, class_name: "User"

User.rb

has_many :followers, through: :passive_relationships, source: :follower

मेरे दृष्टीकोण से

<%= current_user.followers.collect { |follower| follower.username } %>

यह देखते हुए देता है:

Following
["Lisa", nil, "Derek"] etc

मैं इन उपयोगकर्ताओं को सामान्य रूप से मेरे विचार में इस तरह कैसे सूचीबद्ध कर सकता हूं?

Lisa
Derek
etc...
0
davidm 21 मार्च 2020, 13:51

1 उत्तर

सबसे बढ़िया उत्तर

यह निश्चित रूप से इस बात पर निर्भर करता है कि आप इसे कैसे प्रदर्शित करना चाहते हैं। लेकिन यह काफी आसान है, उदाहरण के लिए, यह मानते हुए कि आप प्रतिपादन के लिए erb का उपयोग कर रहे हैं, आप इसे एक पुनरावृत्ति के साथ कर सकते हैं:

<% current_user.followers.pluck(:username).compact.each do |follower_username| %>
  <%= follower_username %>
  <br />
<% end %>

ध्यान दें कि मैंने map के बजाय AR pluck का उपयोग किया है, जो कि रेल की दुनिया में थोड़ा अधिक प्रभावी और अधिक मुहावरेदार है, और मैंने compact का उपयोग nil मानों को रद्द करने के लिए किया।

1
Marek Lipka 21 मार्च 2020, 14:57