Ich mag mein Handel Seite eine Liste aller Item
zeigen, dass ein Benutzer auf ihren Warenkorb gelegt hat, und ich habe Schwierigkeiten zu verstehen, warum diese Implementierung mirWarum bekomme ich NoMethodError?
So in der #show
Aktion meines TradesController eine NoMethodError schenkt Ich habe eine trade_ids
Variable, die ein Array von hinzugefügten Elementen enthält, die von $redis.smembers current_user_trade
zurückgegeben werden. Ich benutze das dann, um eine Suche nach der ID jedes Elements durchzuführen und die Instanzvariable in meiner Ansicht zu durchlaufen.
My Trades Controller:
class TradesController < ApplicationController
def show
trade_ids = $redis.smembers current_user_trade
@trade_items = Item.find(trade_ids)
end
def add
$redis.sadd current_user_trade, params[:item_id]
render json: current_user.trade_count, status: 200
end
def remove
$redis.srem current_user_trade, params[:item_id]
render json: current_user.trade_count, status: 200
end
private
def current_user_trade
"trade#{current_user.id}"
end
end
Hier ist die Methode, die ich bin mit Artikel zu current_user_trade
hinzuzufügen:
class Item < ActiveRecord::Base
extend FriendlyId
friendly_id :slug, use: [:slugged, :finders]
def slug
[artist.parameterize, title.parameterize].join("-")
end
def trade_action(current_user_id)
if $redis.sismember "trade#{current_user_id}", id
"Remove from"
else
"Add to"
end
end
end
Meine Routen:
resource :trade, only: [:show] do
put 'add/:item_id', to: 'trades#add', as: :add_to
put 'remove/:item_id', to: 'trades#remove', as: :remove_from
end
Und dann in meiner Trades Ich habe eine grundlegende:
Mein erster Gedanke ist, dass dies etwas mit der Tatsache zu tun hat, dass ich FriendlyId für die Slug-Generation verwende. Aber nach FriendlyId's doc, Hinzufügen von :finders
zu der Slug-Deklaration in meinem Artikelmodell sollte Lookups nach ID wieder aktivieren. Aber es ist nicht.
Ich habe auch versucht, dies zu refactoring, so dass es meine Artikel verwendet: Schnecke, aber das war auch ohne Erfolg.
Können Sie bitte '$ redis.smembers current_user_trade' Array posten. es hilft uns mehr –
was meinst du post the array? Ich glaube, ich missverstehe. Rails weiß die 4 Artikel, die ich zu diesem Set hinzugefügt habe – sabaeus
Ich meine zu sagen, dass drucken Sie Ihre $ redis.smembers current_user_trade_ Objekt –