2013-10-24 23 views
0

我有我的用户性别存储为一个字符串男性/女性显示用户(因为这是它是如何从Facebook API检索)导轨 - 建立一个帮手性别

我们的目标是使部分表现用户可以通过性别取决于登录的用户,但我有一个小麻烦建立一个帮手

def male 
    @male = @user.gender.male 
end 

那么我的观点的性别..

<% @users.male.each do |male| %> 
    <ul> 
     <li><%= male.firstname %></li> 
     <li><%= male.age %></li> 
     <li><%= male.location %></li> 
    </ul> 

我在做什么错,被卡住了在此为年龄:(

+0

挂在要渲染的部分取决于性别。你能不只是一个能够检查用户性别的“if”语句吗?那么取决于他们是什么性别会阻止部分被渲染? – David

回答

0

您可以使用范围:

class User < ActiveRecord::Base 
    scope :male, -> { where gender: 'male' } 
    scope :female, -> { where gender: 'female' } 
end 

控制器:

def index 
    @users = User.all 
    @males = @users.male # or use User.male, but @users might already be filtered 
    @females = @users.female 
end 

而在你的看法:

<%= @males.each do |user| %> 
    ... 
<% end %> 
+0

会给这个trY! – hyp0thetical

+0

这给了我一个未定义的方法'each'for nil:NilClass on @ males.each do – hyp0thetical

+0

您是否尝试过'@ users.male'和'User.male'?如果两者都失败了,你的情况下男性/女性的标识符可能不同。 – zwippie