Ich habe eine Mischung aus Ruby-Code Schienen Ich habe ein Formular mit einer Auswahl-Option, die ich will ein erforderliches sein, und ich will, validieren. Wenn der Benutzer nichts auswählt, möchte ich mit einer Fehlermeldung validieren. Allerdings versuche ich Vergangenheit Code aus dem Internet zu kopieren, ich bin neu bei Rubin Schienen und ich habe noch keine Fehlermeldung. ich auch überprüfen, ob i 'erforderlich' verwenden oder wenn i 'validates_presence_of' nicht verwendet Unterschied machen, weil es ein Formular ist (glaube ich)Wählen Sie die Option erforderlich Ruby-Rails
test_filteR_form.rb
class TestFilterForm < ApplicationForm
attribute :model, String
validates_presence_of :model
end
.html.erb
<%= f.input :fill_form_error_message,:as => :hidden, :input_html => { :value =>I18n.t('test.fill_form_error') } %>
<%= f.input :model, label: I18n.t('test.filters.model'), autofocus: true, input_html: {class: 'input-xlarge chosen-select' }, collection: TestType.options_for_select, include_blank: true %>
„/>
Controller
def paginate
@test_form = TestForm.new(params)
unless @test_form.valid?
@model = params[:test_filter_form][:model]
@h_model = @model.pluralize + 'H'
@history, _query, @test_fields = TestQueryService.search!(params)
session[:test_query] = _query
session[:test_klass] = @model
else
format.json { render :json => { :error => @test_form.errors.full_messages }, :status => 422 }
end
js.coffee
$contentDiv.on 'ajax:error', 'form[data-value]', (event, xhr, status, error) ->
data = $.parseJSON(xhr.responseText)
$result = $(@).parents('tr').find('[data-result]')
controller.resultUpdateError xhr.status, $result.data('result'), data, $(@)
# Hide row loading spinner
$(@).parents('tr').find('span[role="result_update_spinner"]').hide()
# Hide saved form
$(@).parents('tr').find('.saved_form').hide()
resultUpdated: (result, data, $form) ->
if data.flash != undefined
# Sets a sucess message on page top
flash data.flash.type, data.flash.message
# Sets a success message on row
$fieldForm = $form.parents('tr').find(".messages")
$fieldForm.find('.controls').empty()
$fieldForm.find('.control-group .controls').css('color', 'green').append @_inlineMessage("Gravado com sucesso")
# Hide success message after some time
setTimeout ((self) ->
->
$fieldForm.find('.control-group .controls').empty()
return
)(this), 4000