acceptpts_nested_attributes_ для не сохранения изображения скрепки - PullRequest
3 голосов
/ 23 июля 2011

Я пытаюсь сохранить изображения через вложенную модель

** модель:

Listing 
    has_many:photos
    accepts_nested_attributes_for :photos, :allow_destroy => true

Photo 
    belongs_to:listing
   has_attached_file :data, :styles=>{:featured => "88x63#", :search_result => "122x91#"}

списки контроллер:

def new
    @listing = Listing.new
    @listing.photos.build
    respond_to do |format|
      format.html # new.html.erb
      format.xml  { render :xml => @listing }
    end
  end

 def create
    @listing = Listing.new(params[:listing])
    if @listing.save
      redirect_to(:action=>'index')
    else
      render :action => "new"
    end
end

просмотр:

  <%= form_for [@listing] do |f| %>
   <%= f.fields_for :photos do |ph| %>
      <%= ph.file_field :data %>
   <% end%>
<%end%>

Здесь я упомянул только одно поле в представлении, но я использовал много полей, и все они сохраняются в базе данных, кроме поля данных (изображения).

Если я проверяю наличиеданные в фотомодели, которые я получил, «фотография не должна быть пустой», хотя я загрузил изображение.

1 Ответ

6 голосов
/ 23 июля 2011

Вы не сможете загружать изображения, если у вас нет формы, состоящей из нескольких частей Добавьте объявление: html => {: multipart => true} к объявлению form_for, чтобы вы получили что-то вроде этого

<%= form_for(@listing, :html => { :multipart => true }) do |f| %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...