0

我正在设计一个简单的约会应用程序,我的用户模型有男性和女性的两个布尔字段,我想要一个用户注册为男性的情况,应该向他展示女性用户添加为朋友,如果它是女性同样,应该显示男性用户。我的用户模型如下

  t.string :email,              :null => false, :default => ""
  t.string :bio,              :null => false, :default => "update whatsup with yourself and click here to edit it"
  t.string :username,              :null => false, :default => ""
  t.string :encrypted_password, :null => false, :default => ""
  t.boolean :admin
  t.boolean :author
  t.boolean :male
  t.boolean :female

我已经实现了友谊模型

4

1 回答 1

0

在某处的控制器操作中,添加此位。

 @opposite_sex_users = nil
 if current_user.male && !current_user.female
   @opposite_sex_users = User.where(:male => false, :femail => true)
 elsif !current_user.male && current_user.female
   @opposite_sex_users = User.where(:male => true, :femail => false)
 end

不幸的是,您没有真正给我足够的信息来解决您的问题。例如,假设您想home在页面控制器中使用它,您可以执行类似的操作。

class PagesController < ApplicationController
  def home
    @opposite_sex_users = nil
    number_of_users_to_show = 5 # change this to the number of users you want to show
    if current_user.male && !current_user.female
      @opposite_sex_users = User.where(:male => false, :femail => true).sample(number_of_users_to_show)
    elsif !current_user.male && current_user.female
      @opposite_sex_users = User.where(:male => true, :femail => false).sample(number_of_users_to_show)
    end
  end
end

在你的路线中,

root :to => "pages#home"

在您的意见/页面/home.html.erb

<%- @opposite_sex_users.each do |user| %>
  <!-- displays user email %>
  <%= user.username %>
<% end %>
于 2013-04-24T22:41:22.020 回答