2015-08-13 1 views
1

Я отчаянно пытаюсь поместить множитель в мою форму в Ruby, но он не появится. Я искал онлайн всюду, но все, что я пробовал, не показывает. Даже простые идентификаторы или классы не будут работать ...Ruby form_for html атрибуты не работают, multipart или id

Есть ли какая-либо зависимость, о которой я не знаю?

<%= form_for @listing, :html => {:id => "account_form", :multipart => true } do |f| %> 
    <%= render 'shared/error_messages', object: f.object %> 
    <%= f.label :title %> 
     <%= f.text_field :title, class: 'form-control' %> 

     <%= f.label :highlights %> 
     <%= f.text_area :highlights, class: 'form-control' %> 

     <%= f.label :location %> 
     <%= f.text_area :location, class: 'form-control' %> 

     <%= f.label :catering %> 
     <%= f.text_area :catering, class: 'form-control' %> 

     <%= f.label :travel %> 
     <%= f.text_area :travel, class: 'form-control' %> 

     <%= f.label :dates %> 
     <%= f.text_area :dates, class: 'form-control' %> 

     <%= f.label :price %> 
     <%= f.text_field :price, class: 'form-control' %> 

     <%= f.label :category %> 
     <%= f.select :category, options_from_collection_for_select(Category.all, :id, :name), :include_blank => true %> 

     <%= f.label :country %> 
     <%= f.text_field :country, class: 'form-control' %> 

     <%= f.label :url %> 
     <%= f.text_field :url, class: 'form-control' %> 

     <%= f.label :photo %> 
     <%= f.file_field :photo %> 

    <%= f.submit "Post", class: "btn btn-primary" %> 
<% end %> 

, что приведет к следующему HTML

<form class="new_listing" id="new_listing" action="/listings" accept-charset="UTF-8" method="post"> 

Пожалуйста, помогите!

ответ

1

Он должен измениться MULTIPART сам по себе, когда вы добавляете f.file_field вызов:

Используя этот метод внутри form_for блока будет установлена ​​кодировкой формы вмещающей для MULTIPART/форм-данных.

Как было обнаружено в комментариях, ошибка связана с использованием @listing внутри частичного (вместо локальной переменной).

Если у вас есть _listing_form.html.erb частичное, вы должны pass the local variables вручную:

<%= render partial: 'shared/listing_form', locals: {listing: @listing} %> 
+0

К сожалению, это не – Freebian

+0

Ну надо. Укажите полный исходный код формы. – EugZol

+0

Поместите это в ответ выше. Я также пробовал его только с тегом file_field и ничего другого, кроме submit, без класса. Тем не менее тот же результат – Freebian

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