ОБНОВЛЕНИЕ
Если я уберу reject_if из этой строки:
accepts_nested_attributes_for :image_blogs, :reject_if => lambda { |t| t['image_blog'].nil? }
Это работает, как его можно изменить, чтобы оно работало как задумано, и предотвратить создание изображения при нулевом значении?
Я использую следующий учебник для создания сообщения с изображениями: http://sleekd.com/general/adding-multiple-images-to-a-rails-model-with-paperclip/ Цель состоит в том, чтобы создать элемент сообщения, содержащий блог с 0-n изображениями.Блог изображений - это модель, содержащая скрепку.Я пытаюсь создать элементы image_blog одновременно с постом.Для этого я использую вложенные формы.
class PostsController < ApplicationController
def new
@post = Post.new
3.times{ @post.image_blogs.build}
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @post }
end
end
end
-
class ImageBlog < ActiveRecord::Base
belongs_to :post
attr_accessible :image
has_attached_file :image , :styles => { :small => "150x150>", :large => "320x240>" }
end
-
class Post < ActiveRecord::Base
has_many :image_blogs, :dependent => :destroy
validates :title, :content, :presence => true
validates :title, :uniqueness => true
acts_as_taggable
has_attached_file :image
accepts_nested_attributes_for :image_blogs, :reject_if => lambda { |t| t['image_blog'].nil? }
end
-
<%= form_for(@post,:html => { :multipart => true }) do |f| %>
<div class="field">
<%= f.label :title %><br />
<%= f.text_field :title %>
</div>
<div class="field">
<%= f.label :content %><br />
<%= f.text_area :content, :class => "mceEditor" %>
</div>
<%= f.fields_for :image_blogs, do |ib|%>
<p>
<%= ib.label "Image du post"%>
<%= ib.file_field :image %>
<%#= ib.check_box :_destroy%>
<%#= ib.label :_destroy,"Effacer l'image" %>
</p>
<% end %>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
Я проверил, чтовсе было правильно, используя разные учебники о вложенной скрепке, но она все равно не работает.Сообщение создано, но изображения не копируются, а элементы изображения не создаются.
Почему нет ошибок?почему не работает?