Rails acceptpts_nested_attributes> сборка теряется при неудачной проверке - PullRequest
0 голосов
/ 02 апреля 2012

Когда происходит проверка при сохранении в модель location с использованием accepts_nested_attributes для модели местоположения, Rails вернет бланк формы, когда он ранее содержал значения.

class Sale < ActiveRecord::Base
  belongs_to :location
  belongs_to :user
end

class Location < ActiveRecord::Base
  belongs_to :user
  has_many :sales
  validates_presence_of :street_address, :town, :state, :zip
end

class User < ActiveRecord::Base
  has_many :sales
  has_many :locations
end

Когда не происходит ошибка проверки, это создает абсолютно точное расположение, однако, когда ошибка проверки возникает в любой части формы, кажется, что данные полей местоположения теряются.

Есть идеи?

Код контроллера

def new
    user = User.find(current_user.id)
    1.times { @sale.items.build; @sale.build_location; @sale.sale_times.build; }
  end

  def create
    @sale = Sale.new(params[:sale])
    respond_to do |format|
      if @sale.save
        format.html { redirect_to @sale, notice: 'Sale was successfully created.' }
        format.json { render json: @sale, status: :created, location: @sale }
      else
        format.html { 
          1.times { @sale.items.build; @sale.build_location;  }
          render action: "new" 
          }
        format.json { render json: @sale.errors, status: :unprocessable_entity }
      end
    end
  end

1 Ответ

1 голос
/ 02 апреля 2012

Этот вопрос аналогичен приведенному здесь: rails fields_for не отображается после ошибки проверки во вложенной форме

Посмотрите на первый ответ, и это должно помочь

...