0

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

用户.rb

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

歌词.rb

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

分享.rb

attr_accessible :lyric_id, :user_id

belongs_to :lyric
belongs_to :user

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

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

1 回答 1

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 %>
于 2012-11-22T04:29:31.063 回答