你好我猜测这将是一个很好的问题..但是..
我有一个名为list的脚手架,其中has_many:wish。在我的模型中使用该信息,我可以在列表视图中使用此代码
现在我已经制作了一个名为statusboard的控制器。 并且在'我有3个功能..或者如何说它..但它是索引,登录,登出..并且..在登录和文件#app / views / statusboard / loggedin.html.erb我想要显示这个..
您好{用户名},您已制作{count lists}列表和{count wishes}愿望
这是我想我应该写在我的文件中..
你好{用户名},你做了<%= h @ user.list.count%>列表和<%= h @ user.wishes.count%>愿望
我的列表模型就像这样=
class List<的ActiveRecord ::基
attr_accessible:user_id,:name,:description
belongs_to:users
has_many:祝愿
端
我的愿望模型就像这样=
类愿望<的ActiveRecord ::基
attr_accessible:list_id,:name,:price,:link,:rating,:comment
belongs_to:list
端
最后我的用户模型就是这样=
class User<的ActiveRecord ::基
#包括默认设计模块。其他可用的是:
#:token_authenticatable,:lockable和:timeoutable
设计:database_authenticatable,:可注册,#:确认,
:可恢复,:可记住,:可跟踪,:可验证
#为您的模型设置可访问(或受保护)属性
attr_accessible:email,:password,:password_confirmation
has_many:列出
端
我希望有人可以帮助我:-)! / Oluf Nielsen
答案 0 :(得分: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
你好{用户名},你做了<%= h @ user.list.count%>列表和<%= h @ user.wishes_count%>愿望
您不能使用@ user.wishes.count,因为用户与愿望没有直接关系,希望此解决方案适合您。如有任何问题,请发表评论。
答案 1 :(得分:0)
为用户添加has_many:through association:
class User < ActiveRecord::Base
...
has_many :lists
has_many :wishes, :through => :lists
end
然后你可以使用
@user.wishes.count
答案 2 :(得分:0)
这有点切线,但是没有必要使用h html清理辅助方法:
<%=h @user.list.count %>
因为count是ruby生成的方法而不是用户创建的。