【发布时间】:2017-05-04 16:08:40
【问题描述】:
我不确定如何编写以下方法,非常感谢您的帮助。我想做的是:
- 如果用户声明他们是男性 (
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[女] -
问题:谁能告诉我如何正确编写
preference_list方法以使其正确显示在视图(users/index.html.erb)中,以显示当前用户为女性的用户是男性还是反之亦然? - 尝试了以下方法,但似乎不起作用
型号
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
查看 [users/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>
【问题讨论】:
标签: ruby-on-rails