喜同胞程序員,時,有相同的產品編號
我被困在已被竊聽我過去的2天內對該小問題更換模型數據。在我的項目中有兩個模塊,產品和special_price。如果在special_prices表中存在product_id條目,我試圖實現的是替換所有可用產品的價格。因此,我的模型文件如下:
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
我的客戶控制器,其中價格將在節目中的動作顯示是:
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
在我的意見
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 %>
通過使用上述代碼,我只能得到1個產品,以顯示其special_price。但是當我添加不同products_id的特殊價格的其他條目時,數組不會自動更新。我已經做了一些研究,我認爲它可能與局部變量和實例變量有關,任何人都可以指向正確的方向嗎?非常感謝!我會很感激任何意見。
如果將新的'special_prices'添加到現有產品中,您是否成功地更新了'Product's:special_prices'? – mrvncaragay
是的。它成功更新,但只有1個產品:special_prices,即使該客戶有2個或更多的special_prices。 –