Merhaba, aşağıdaki erb kodunda Current_user.id ve text_id kullanarak favori tabloda bulunan bir sütunun counter
değerini almak istiyorum. Modellerin ilişkisi aşağıdaki gibidir.kullanıcı_id ve text_id kullanarak veritabanı sütunu değerini alamıyor 4
Raylara yeniyim ve görünümündeki değeri getirip getiremeyeceğimizden emin değilim. Lütfen yardım et.
<p>
All Favorites
<% if ***current_user.favorite.counter == ?*** %>
<%= link_to #do something %>
<% else %>
<%= link_to #do something else %>
<% end %>
</p>
User.rb
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
has_many :favorites
has_many :favorite_texts, through: :favorites, source: :favorited, source_type: 'Text'
Favorite.rb
class Favorite < ActiveRecord::Base
belongs_to :favorited, polymorphic: true
belongs_to :user
Favori tabloda aşağıdaki veritabanı sütunları
id | text_id | favorited_type | user_id | created_at | updated_at | counter
Ayrıca text_id user_id için benzersizdir
sahiptir.kullanıcı denetleyici aşağıdaki kodu önceden
class UsersController < ApplicationController
def show
@user = User.find(params[:id])
@texts = current_user.favorite_texts
@favorite_groups = @user.favorite_groups
@fav_group = FavoriteGroup.new
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @user }
end
end
end
Teşekkür vardır.
İsteğinizi tam olarak anladığımı bilmiyorum, ancak bu kod: "current_user.favorites.where (favorited_type: 'Text', favorited_id: text_id) .first.counter", "sayaç" değerinin Bir kullanıcı ve bir Metin bağlayan favori kayıt – MrYoshiji
Evet text_id ve user_id kullanılarak getirilen 'counter' değerini getirmek istiyorum. –
@MrYoshiji Denetleyicide sizin tarafınızdan önerilen yolu takip ettiğimde ve bir değişkende "where" deyimi tarafından getirilen verileri sakladığınızda ve "sayaç" a erişmeyi denediğimde, "NilClass" için "tanımlanmamış" yöntemi "sayacı" alıyorum. Doğru şekilde yapıp yapmadığımdan emin değilim. –