Hallo Kollegen Programmierer,Ersetzen Sie Modelldaten, wenn es die gleiche Produkt-ID gibt
Ich stecke in diesem kleinen Problem, das mich in den letzten 2 Tagen abgehört hat. In meinem Projekt gibt es 2 modals, product und special_price. Was ich versuche zu erreichen ist, den Preis für alle verfügbaren Produkte zu ersetzen, wenn ein Eintrag der product_id in der Tabelle special_prices vorhanden ist. Daher ist meine Modell-Datei wie folgt:
product.rb
class Product < ActiveRecord::Base
has_many :special_prices, dependent: :destroy
before_save :upcase_stock_code
validates :name, presence: true, length: { maximum: 50 }
validates :stock_code, presence: true, length: { maximum: 20 }
validates :status, presence: true, length: { maximum: 10 }
validates :default_price, presence: true
end
special_price.rb
class SpecialPrice < ActiveRecord::Base
belongs_to :product
belongs_to :customer
validates :product_id, presence: true, uniqueness: { scope: [:customer_id] }
validates :customer_id, presence: true
validates :price, presence: true
end
meine Kunden-Controller als wo die Preise werden in der Show Aktion gezeigt werden soll, wie:
def show
@customer = Customer.find(params[:id])
@customer_active = Customer.find_by(id: params[:id], status: "active")
@user = User.find_by(params[:user_id])
@special_price = SpecialPrice.find_by(customer_id: params[:id])
@special_prices = SpecialPrice.where(customer_id: params[:id])
@products = Product.all
end
in meinen Ansichten
show.html.erb
<div class="tab-pane" id="prices">
<h1>Products</h1>
<div>
<%= render 'special_prices/price' %>
</div>
</div>
_price.html.erb
<% @products.each do |k| %>
<span>
<%= k.id %>
<%= k.name %>
<% if k.id == @special_price.product_id %>
<%= @special_price.price %>
<% else %>
<%= k.default_price %>
<% end %>
</span></br>
<% end %>
Durch die Codes oben verwenden, bin ich nur in der Lage 1 Produkt bekommen seine special_price zu zeigen. Aber wenn ich einen anderen Eintrag von Sonderpreisen verschiedener products_id hinzufüge, würde sich das Array nicht selbst aktualisieren. Ich habe etwas recherchiert und ich denke, dass es etwas mit lokalen Variable und Instanzvariable zu tun hat, kann mir jemand in die richtige Richtung zeigen? Danke vielmals! Ich würde mich über jede Beratung freuen.
ist es Ihnen gelungen, die 'Product's: special_prices' zu aktualisieren, wenn neue' special_prices' zum bestehenden Produkt hinzugefügt werden? – mrvncaragay
ja. es aktualisiert erfolgreich aber nur 1 Produkt: special_prices, selbst wenn es 2 oder mehr special_prices für diesen Kunden gibt. –