2015-06-21 27 views
0

如果有模型,如何顯示模型,沒有模型時什麼也不顯示?循環中的所有模型都應該使用相同的行爲。如何僅在有模型時顯示模型?

我在show.html.erb代碼如下:

<% [@car.image.url, @car.image2.url, @car.image3.url, @car.image4.url].each do |image| %> 
    <%= link_to "javascript:void(0)", data: { image: image, zoom_image: image } do %> 
     <%= image_tag image, id: "f1", style: '',width: "150",height: "150" %> 
    <% end %> 

我怎樣才能做這樣的事情在這種情況下,下面的代碼?

<% if @car.image4.url %> 
    <%= @car.image4.url %> 
<% end %> 

預期的行爲是如果我們有image4那麼就說明,如果沒有,我們沒有顯示它。

+0

我已經重述標題,內容來解決語法問題,並更好地解釋你的問題。 – Harry

回答

0

這soulds像你應該使用has_many關係來代替:

class Car < ActiveRecord::Base 
    has_many :images 
end 

class Image < ActiveRecord::Base 
    belongs_to :car 
end 

class CarsController 
    # ... 
    def show 
    @car = Car.includes(:images).find(params[:id]) 
    end 
end 

# /app/views/cars/show.html.erb 
<% @car.images.map(&:url).each do |image| %> 
    <%= link_to "javascript:void(0)", data: { image: image, zoom_image: image } do %> 
     <%= image_tag image, id: "f1", style: '',width: "150",height: "150" %> 
    <% end %> 
<% end %>