1

fuel_consumption.rb

class FuelConsumption < ApplicationRecord
  after_initialize :set_defaults, unless: :persisted?

  def set_defaults
    self.date ||= Date.today
  end

  belongs_to :boiler
  validates :fuel, numericality: {message: 'Поле может быть только числовое'}
  validates :fuel, presence: 'Поле топлива не может быть пустым'
  validates_uniqueness_of :date, scope: :boiler_id, message: 'Эта дата уже заполнена'
  validates :date, presence: 'Дата не может быть пустой'
end

new.html.slim

h4 Расход топлива
  = form_for(@branch, url: {action: 'create'}, method: 'post') do |f|
    = f.fields_for :boilers do |ff|
      = ff.fields_for :fuel_consumption do |fff|
        .form-group
          = fff.label :fuel, 'Дата'
          = fff.text_field :date, class: 'form-control', disabled: 'disabled', value: I18n.l(Date.today, format: :long)
        .form-group
          = fff.label :fuel, 'Количество топлива'
          = fff.text_field :fuel, class: 'form-control'
    .form-group
      = f.submit 'Сохранить', class: "btn btn-lg btn-success"

fuel_consumption_controller.rb

  def new
    @branch = current_user.branches.first
    # @fuel_consumption = FuelConsumption.new
  end
  def create
    @branch = current_user.branch.update_attributes(branch_params)

    if @branch
      render :success
    else
      flash.alert = 'Oops'
      render :action => 'new'
    end
  end


  def branch_params
    params.require(:branch).permit!
  end

I have assigned to user 1 branch, which have few (4 or 5) boilers, and i want to create fuel consumption on each boiler from one page, how to achieve that. This code updates attributes, but doesn't create fuel_consumption.

2 Answers 2

3

My guess is that you forgot to allow the nested attributes to be set in your model(s), for example in models/branch:

accepts_nested_attributes_for :boilers
Sign up to request clarification or add additional context in comments.

Comments

0

in addition to the above answer you should double check if you permit the params in your controller. There are some very nice tutorials on setting up nested attributes.

For instance: http://railscasts.com/episodes/196-nested-model-form-part-1

Hope it helps.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.