2013-06-25 4 views
0

, почему-то мои сообщения об ошибке проверки не отображаются в окне. имеет ли он какое-либо отношение к twitter-bootstrap? Я помню, что видел видео-учебник, но, к сожалению, не могу его найти.Сообщения об ошибках, не отображающие

_form частичной записи

<%= form_for [@estate,@record] do |f| %> 
     <% if @record.errors.any? %> 
     <div id="error_explanation"> 
      <h2><%= pluralize(@record.errors.count, "error") %> prohibited this record from being saved:</h2> 

      <ul> 
      <% @record.errors.full_messages.each do |msg| %> 
      <li><%= msg %></li> 
      <% end %> 
      </ul> 
     </div> 
     <% end %> 
    ....... 
    ...... 
    ... 
    <% end %> 

моя запись модель

validates :E1, presence: true 
     validates :E2, presence: true 
     validates :E3, presence: true 
     validates :E4, presence: true 
     validates :R1, presence: true 
     validates :R2, presence: true 
     validates :R3, presence: true 
     validates :R4, presence: true 
     validates :Year, presence: true 
     validate :validation 

создания и обновления метод контроллера

def create 
     @record = @estate.records.build(params[:record]) 

     respond_to do |format| 
      if @record.save 
      format.html { redirect_to [@estate,@record], notice: 'Record was successfully created.' } 
      format.json { render json: @record, status: :created, location: @record } 
      else 
      format.html { render action: "new" } 
      format.json { render json: @record.errors, status: :unprocessable_entity } 
      end 
     end 
     end 

     # PUT /records/1 
     # PUT /records/1.json 
     def update 
     @record = Record.find(params[:id]) 

     respond_to do |format| 
      if @record.update_attributes(params[:record]) 
      format.html { redirect_to [@estate,@record], notice: 'Record was successfully updated.' } 
      format.json { head :no_content } 
      else 
      format.html { render action: "edit" } 
      format.json { render json: @record.errors, status: :unprocessable_entity } 
      end 
     end 
     end 

у него есть все, чтобы сделать эту запись принадлежит поместье и поместье много записей. например, при создании записи, которую я делаю «@record = @ estate.records.build (params [: record])» Я пробовал отлаживать ее с помощью отладчика, я узнал, что при создании записи он не попадает в другую часть, он непосредственно создает запись без проверки на валидацию из модели записи.

+0

bootstrap не имеет значения, это просто эстетическая библиотека – sircapsalot

+0

вы можете помочь мне с решением? –

ответ

0

Взгляните на этот драгоценный камень http://rubygems.org/gems/dynamic_form

Он будет отображать ошибки проверки для вас с вашей точки зрения. Затем вы можете удалить цикл вашего кода при ошибках экземпляра.

Кроме того, ничего не делать с вашим вопросом, но я предлагаю рефакторинга кода со следующим:

в контроллере:

respond_to :html, :json 

def create 
    @record = @estate.records.build(params[:record]) 
    if @record.save 
    # flash[:success]... or whatever 
    else 
    # flash[:alert]... or whatever 
    end 

    respond_with @record 
end 

# same for your update method 

Для вашей информации, вы можете заменить render action: 'new' на render :new

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