2014-10-15 3 views
0

Чтобы все было в порядке, у меня есть две модели: статья & Фотографии (см. Ниже). Когда я использую ассоциации, то есть (ниже), почему фотографии плюрализованы? Например, если я сделал @ article.user, он покажет объект пользователя. Я использую Paperclip кстати. Это потому, что в статье может быть много экземпляров Photo (несколько строк в db) ???Разделение вложенных атрибутов при использовании ассоциаций?

<% if @article.photos.exists? %> 
    <div class="row thumbnailrow"> 
     <% @article.photos.each do |x| %> 
     <div class="col-xs-3"> 
      <!--<img src="http://placehold.it/300x150" class="img-responsive"/>--> 
      <%= image_tag x.image.url(:full), :class=> "img-responsive" %> 
     </div> 
     <% end %> 
    </div> 
<% end %> 

class Article < ActiveRecord::Base 

belongs_to :user 

validates_presence_of :title,length: {minimum: 20, maximum:100}, :message =>" Enter a valid title. Minimum of 20 characters" 
validates_presence_of :category, presence: true 
#validates_presence_of :content, presence: true, length: {minimum: 500, maximum: 1000} 
validates_associated :photos, :message => "Please use a valid image" 
has_many :photos, dependent: :destroy 

accepts_nested_attributes_for :photos, reject_if: proc { |attributes| attributes['image'].blank?} 

def author 
    if user.present? 
     [user.first_name, user.last_name].reject(&:blank?).join(' ') 
    else 
     "author name" 
    end 
end 
end 

class Photo < ActiveRecord::Base 
has_attached_file :image, :styles => { :full => "640x480#", :medium => "300x300>",  :thumb => "100x100>" }, :default_url => "http://placehold.it/350x200" 
validates_attachment_content_type :image, :content_type => /\Aimage\/.*\Z/ 

validates :image, :attachment_presence => true 


belongs_to :article 

end 

ответ

0

Rails умна о его ассоциации с тем, когда вы говорите, что это одна модель ActiveRecord has_many :photos понимает, что даже если есть только одна фотография прилагается, может быть больше, чем один. Если бы вы изменили ассоциацию на has_one :photo, это больше не будет множественным. Имеют смысл?

Смежные вопросы