我希望用户从选择中选择一个价格,并根据所选价格,显示一个或哪个图像。
我创建了一个价格表,有2列:价格(整数)和price_image(字符串)。
Prices has_many :foods, and Foods has_one :price.
一切都还好,直到那里。我可以在我看来显示@food的price_id。
我需要告诉Rails:
如果price_id = 1,则显示price_id = 1的price_image 如果price_id = 2,则显示price_id = price = id ...等等......
我错过了什么?非常感谢
def index
@addictfood = Addictfood.last
@food = Food.last
@foods = Food.by_category(params[:category_id])
@price = Prices.find(params[:price_id])
end
<div class="panel semi_margin_bottom food_card">
<%= image_tag @food.food_image_url(:food_small), class: "radius" %>
<h5> <%= @food.name %> </h5>
<span class="small"><i class="icon-list"></i> <%= @food.ingredients %></span>
<span class="medium block textright"><%= @food.price_id %></span>
</div>
非常感谢
答案 0 :(得分:0)
根据你的评论:
I can't understand why do I have wrong the associations. When I create a new Food, I need to select a price for it, how can I do this if I don't have a price_id to select?
您需要的是has_and_belongs_to_many
关联。
所以你的模型看起来像:
class Price < ActiveRecord::Base
has_and_belongs_to_many :foods
end
class Food < ActiveRecord::Base
has_and_belongs_to_many :prices
end
回到你宣布关联的方式,你有Price has_many :foods, and Food has_one :price.
如果Food has_one :price
有price_id in your foods table
栏,那么Price has_many :foods
和price_id
也会找到你的食物表中的Price belongs_to :food
。因此,不要使用价格has_many:食品,而是 food_id in your prices table
,这将使铁路找到 {{1}} 。有关详细信息,请参阅rail guides