Мое приложение управляет бизнес-правилами, которые применяются к одному бизнес-объекту.При редактировании бизнес-правила я сталкиваюсь с автоматической ошибкой.
Представление _form.html.erb правильно отображает текущие свойства, включая раскрывающееся поле:
<%= f.collection_select :business_object_id, @business_objects_list, :id, :name %>
Отображается текущее значение, доступнозначения отображаются в раскрывающемся списке.
При применении модификации (не связанной с этим раскрывающимся списком), которая не проходит проверку, Rails пытается отобразить _form.html.erb, но выдает ошибку из-за отсутствия @business_objects_list:
неопределенный метод `map 'для nil: NilClass
@ business_objects_list создается в закрытом разделе контроллера бизнес-правил:
# Retrieve business objects list
def set_business_objects_list
if action_name == 'edit'
my_business_area = @business_rule.business_process.business_flow.business_area_id
else
my_business_area = BusinessProcess.find(params[:business_process_id]).business_flow.business_area_id
end
@business_objects_list = BusinessObject.where("business_area_id = ?", my_business_area)
end
Функция set_business_objects_list вызывается в верхней части контроллера:
before_action :set_business_objects_list, only: [:new, :edit]
РЕДАКТИРОВАТЬ: Действия контроллера
# GET /business_rules/1/edit
def edit
### Retrieved by Callback function
end
# PUT /business_rules/1
# PUT /business_rules/1.json
def update
### Retrieved by Callback function
@business_rule.updated_by = current_user.user_name
respond_to do |format|
if @business_rule.update_attributes(business_rule_params)
format.html { redirect_to @business_rule, notice: 'Business rule was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @business_rule.errors, status: :unprocessable_entity }
end
end
end
Не могли бы вы помочь выяснить, что здесь не так??Спасибо!