Rails从连接表访问信息

时间:2012-11-22 02:24:27

标签: ruby-on-rails ruby-on-rails-3

我有一个rails应用程序,我使用连接表来获取用户歌词,反之亦然。由于一些奇怪的原因,我无法得到用户歌词的计数。当我从用户模型中删除通过选项时它工作正常,但我需要它通过共享来工作,以便用户可以共享歌词。有人有类似的问题或解决方案吗?

User.rb

has_many :shareships
has_many :lyrics, through: :shareships, dependent: :destroy

Lyric.rb

has_many :shareships
has_many :users, through: :shareships, dependent: :destroy

Shareship.rb

attr_accessible :lyric_id, :user_id

belongs_to :lyric
belongs_to :user

这是我在视图中用来显示歌词计数的代码

#Returns 0
<%= @user.lyrics.count %>

1 个答案:

答案 0 :(得分:0)

您可以使用

获取数据
<%= total_user_lyrics = @user.lyrics.count %> 

如果user没有lyrics,则会返回0。所以先检查一下

在您的控制台中

@user.lyrics它将返回的内容检查它,如果它将返回nil然后当您尝试@user.lyrics.count时。您将获得0,因为@user.lyrics没有记录。

反之亦然

<%= total_lyric_users = @lyric.users.count %>