Ruby和Rails的新手。简单的辅助方法 - 我做对了吗?
我开发,你可以注册球队,球员等简单的应用程序,它看起来像这样:
队的has_many玩家 玩家belongs_to的团队
当我要显示在画面中玩家(普通用户):
<%= @player.name %> - <%= playerteam %>
,并在管理视图,它看起来像这样:
<% @players.each do |player| %>
<tr>
<td><%= player.id %></td>
<td><%= player.name %></td>
<td><%= playerteam(player) %></td>
<td><%= owner(player) %></td>
</tr>
<% end %>
和辅助方法:
def playerteam(player = nil)
if player != nil
if player.team_id == nil
return "No team"
else
@team = Team.find(player.team_id)
return @team.name
end
else
if @player.team_id == nil
return "No team"
else
@team = Team.find(@player.team_id)
return @team.name
end
end
end
它的工作原理,但它不是漂亮或“红宝石性感”
起初,人们只能从普通视图中使用,但后来当我想用它admin-view也是我必须添加一个默认值和额外的if子句的参数。
有没有更好的方法?
是的,这就像一个魅力,非常性感。 :)我唯一需要改变的地方是<%= player.team_name%>到<%= @ player.team_name%>现在我必须对我的其他帮助器方法也这样做。 – 2010-10-08 10:49:50
很高兴,我可以,并且我更正了我的代码。 – jigfox 2010-10-11 07:53:53