Hallo im unteren erb code Ich möchte den Wert einer Spalte counter
in Lieblingstabelle mit current_user.id und die Text-ID abrufen. Die Beziehung der Modelle ist wie folgt.nicht in der Lage, den Wert der Datenbankspalte mit user_id und text_id in rails4
Ich bin neu auf Schienen und ich bin mir nicht sicher, ob wir den Wert in der Ansicht abrufen können. Bitte helfen Sie.
<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
Lieblings Tabelle hat die folgenden Datenbankspalten
id | text_id | favorited_type | user_id | created_at | updated_at | counter
Auch die text_id für die user_id einzigartig ist.
Der Benutzer Controller hat den folgenden Code
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
Vielen Dank im Voraus.
Ich weiß nicht, ob ich Ihre Anfrage vollständig verstanden habe, aber dieser Code: 'current_user.favorites.where (favorited_type: 'Text', favorited_id: text_id) .first.counter' sollte den' counter' Wert des Lieblingssatz, der einen Benutzer und einen Text verbindet – MrYoshiji
Ja Ich möchte den Zählerwert holen, der mit der Text-ID und der Benutzer-ID abgerufen wurde. –
@MrYoshiji Wenn ich dem von Ihnen vorgeschlagenen Weg folge und die von 'where' in einer Variablen abgerufenen Daten speichere und versuche, auf den' counter' zuzugreifen, bekomme ich 'undefinierte Methode' counter 'für nil: NilClass'. Ich bin mir nicht sicher, ob ich es richtig mache. –