0

你好,我这将是一个非常菜鸟的问题.. 但是..

我有一个叫做 list 的脚手架,它有 _many :wishes。有了模型中的这些信息,我可以在列表视图中使用此代码

好吧,现在我已经制作了一个名为 statusboard 的控制器。我有 3 个功能。或者怎么说。但它是索引,登录,注销 .. 和 .. 登录和文件 #app/ views/statusboard/loggedin.html.erb 我想显示这个..

你好,{Username},您已经创建了 {count 个列表} 个列表,并有 {count 个愿望} 个愿望

这是我想我应该写在我的文件中..

你好,{用户名},你已经创建了 <%=h @user.list.count %> 个列表,并且 <%=h @user.wishes.count %> 个愿望

我的列表模型是这样的 =

类列表 < ActiveRecord::Base

  attr_accessible :user_id, :name, :description

  属于_to:用户

  has_many :愿望

结尾

我的愿望模型是这样的=

类愿望 < ActiveRecord::Base

  attr_accessible :list_id, :name, :price, :link, :rating, :comment

  属于_to:列表

结尾

最后我的用户模型是这样的=

类用户 < ActiveRecord::Base

  # 包括默认设计模块。其他可用的有:

  # :token_authenticable, :lockable 和 :timeoutable

  设计 :database_authenticable, :registerable,# :confirmable,

             :recoverable, :rememberable, :trackable, :validatable

  # 为您的模型设置可访问(或受保护)的属性

  attr_accessible :email, :password, :password_confirmation

  has_many :列表

结尾

我希望有一个人可以帮助我 :-)!/ 奥鲁夫尼尔森

4

3 回答 3

0

在用户模型中编写此方法

#copy the below code in /app/models/user.rb file`
def wishes_count
  counter = 0
  self.lists.each do |list| # this is similar to @user.lists 
    counter += list.wishes.count #this is similar to @list.wishes
  end
  return counter
end

Howdy {Username}, you have made <%=h @user.list.count %> lists, and <%=h @user.wishes_count %> wishes

you can't use @user.wishes.count since user is not directly related to wishes, hope this solution works for you. If any questions please drop a comment.

于 2010-05-23T16:09:12.380 回答
0

Add the has_many :through association for user:

class User < ActiveRecord::Base
  ...
  has_many :lists
  has_many :wishes, :through => :lists
end

and then you can use

@user.wishes.count
于 2010-05-23T20:54:18.310 回答
0

This is a little bit tangential, but it shouldn't be necessary to use the h html sanitizing helper method on:

<%=h @user.list.count %>

since count is a ruby generated method and not user created.

于 2010-05-24T01:34:39.353 回答