Rails 在不同视图中使用计数

发布于 2024-09-02 09:43:04 字数 1519 浏览 8 评论 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:用户 ID、:名称、:描述

  belongs_to:用户

  has_many:愿望

结束

我的愿望模型是这样的 =

类愿望< ActiveRecord::Base

  attr_accessible:list_id、:名称、:价格、:链接、:评级、:评论

  belongs_to:列表

结束

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

类用户< ActiveRecord::Base

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

  # :token_authenticatable、:lockable 和 :timeoutable

  设计:database_authenticatable,:可注册,#:可确认,

           :可恢复、:可记住、:可追踪、:可验证

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

  attr_accessible:电子邮件、:密码、:password_confirmation

  has_many:列表

结束

我希望有人可以帮助我:-)! / 奥拉夫·尼尔森

Hello i guess this is going to be pretty noob question.. But..

I have an scaffold called list, which has_many :wishes. And with that information in my model, I can in my list view use this code

well now I have made an controller called statusboard..
And in that' I have 3 functions.. Or how to say it.. but it is Index, loggedin, loggedout.. And .. In loggedin and in the file #app/views/statusboard/loggedin.html.erb i want to display this..

Howdy {Username}, you have made {count lists} lists, and {count wishes} wishes

here is that i figured i should write in my file..

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

my list model is like this =

class List < ActiveRecord::Base

  attr_accessible :user_id, :name, :description

  belongs_to :users

  has_many :wishes

end

and my wish model is like this =

class Wish < ActiveRecord::Base

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

  belongs_to :list

end

and last my user model is like this =

class User < ActiveRecord::Base

  # Include default devise modules. Others available are:

  # :token_authenticatable, :lockable and :timeoutable

  devise :database_authenticatable, :registerable,# :confirmable,

             :recoverable, :rememberable, :trackable, :validatable

  # Setup accessible (or protected) attributes for your model

  attr_accessible :email, :password, :password_confirmation

  has_many :lists

end

i hope someone can help me :-)!
/ Oluf Nielsen

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

征棹 2024-09-09 09:43:04

添加 has_many :through 关联 user:

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

然后你可以使用

@user.wishes.count

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
冷夜 2024-09-09 09:43:04

将这个方法写在用户模型中

#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

您好{用户名},您已经创建了<%=h @user.list.count %>;列表,以及 <%=h @user.wishes_count %>愿望

您不能使用@user.wishes.count,因为用户与愿望没有直接关系,希望这个解决方案适合您。如有任何疑问,请发表评论。

Write this method in user model

#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.

听风吹 2024-09-09 09:43:04

这有点离题,但没有必要在以下位置使用 h html 清理帮助器方法:

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

因为 count 是 ruby​​ 生成的方法,而不是用户创建的。

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文