0

私は結合テーブルを使用してユーザーの歌詞を取得しているレールアプリを持っています。奇妙な理由で、ユーザーの歌詞の数を取得できませんでした。ユーザー モデルからスルー オプションを削除すると正常に動作しますが、ユーザーが歌詞を共有できるように、共有を介して動作する必要があります。誰かが同様の問題または解決策を持っていましたか?

ユーザー.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 %>
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 に答える