我不確定如何去編寫下面的方法,你的幫助將不勝感激。我所試圖做的是:編寫一個方法查詢以顯示特定的用戶列表 - Rails 5
- 如果用戶表示他們是男性(
category_gender_id = 1
),他們正在尋找一個女(user.preference.category_matchseeking_id = 2
)我想,然後用category_gender_id = 2
- 顯示所有女性成員
category_gender_id = 1
[雄性] category_gender_id = 2
[雌]category_matchseeking_id = 1
[雄性]category_matchseeking_id = 2
[雌]- 問題:如果當前用戶是男性或反之,顯示用戶是女性,那麼能否正確地在視圖(users/index.html.erb)中正確顯示,我可以怎樣正確編寫方法
preference_list
? - 嘗試以下,但似乎並沒有工作
車型
user.rb
belongs_to :category_gender
has_one :preference
def self.preference_list
users = User.all
users.each do |user|
if user.preference.category_matchseeking.name == "Male"
#display users that are female
users.joins(:category_gender).where('category_genders.name' => "Female")
else user.preference.category_matchseeking.name == "Female"
#display users that are male
users.joins(:category_gender).where('category_genders.name' => "Male")
end
end
end
-
Preference.rb
belongs_to :user
belongs_to :category_matchseeking
-
CategoryGender.rb
has_many :users
-
CategoryMatchseeking.rb
has_many :preferences
查看[用戶/ index.html.erb]
<table>
<thead>
<tr>
<th>Firstname</th>
<th>Lastname</th>
<td>gender</td>
<th>email</th>
<th>stats</th>
</tr>
</thead>
<tbody>
<% @users.preference_list.each do |user| %>
<tr>
<td><%= link_to user.firstname, user %></td>
<td><%= link_to user.lastname, user %></td>
<td><%= user.category_gender.name%></td>
<td><%= user.email %></td>
<td>-</td>
</tr>
<% end %>
</tbody>
</table>