Рельсы 2.3.11
Я хотел бы использовать text_field для ввода данных при одном условии, иначе используя поле выбора. Прямо сейчас мой код выглядит так:
представления/постеры/new.html.erb
<% form_for @poster, :html => {:multipart => true} do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :image %> - We're not going to enlarge it for you, so please upload the biggest copy you can!<br />
<%= f.file_field :image %><br />
</p>
<p>
<% if current_user.admin? && params[:event_id] && !current_user.events.find_by_id(params[:event_id]) && Event.find_by_id(params[:event_id]) %>
<%= f.label "Event ID" %><br />
<%= f.text_field :event_id, :value => params[:event_id] %>
<% else %>
<%= f.label :event_id %><br />
<%= f.select :event_id, @events, :selected => params[:event_id].to_i %>
<% end %>
</p>
<p>
<%= f.submit 'Create' %>
</p>
<% end %>
controllers/posters_controller.rb
def new
@poster = Poster.new
current_user ||= User.find_by_id session[:user_id]
@events = [["Don't attach to an event", '']]
current_user.events.each {|event| @events << [event.title, event.id]}
respond_to do |format|
format.html # new.html.erb
format.xml { render :xml => @poster }
end
end
Сообщение об ошибке: http://cl1p.net/halp.
Как я могу использовать два разных типа полей ввода формы для одного и того же параметра (но каждый при разных условиях, а не одновременно)?
Обновление: я думаю, что проблема связана с тем, что Rails помещает ранее отправленную информацию обратно в соответствующие поля ввода. Это объясняет, почему не возникает истерики, когда файл, который проходит все проверки (то есть PNG размером менее 3 МБ), но ломается, когда ничего (или что-то, что не соответствует этому условию) не прикрепляется.
f.select
также автоматически выбирать событие, идентификатор которого был передан в качестве аргумента URL? 26.06.2011:event_id
рядом сf.select
. 26.06.2011