首页 > 解决方案 > flash[:notice] 消息不会显示

问题描述

我正在制作一个创建和验证一些输入的应用程序,但是我无法通过 flash[:notice] 或成功消息显示错误消息,但它确实可以验证

子公司控制人

class  SubsidiariesController < ApplicationController
  def index
    @subsidiaries = Subsidiary.all
  end

  def show
    @subsidiary = Subsidiary.find(params[:id])
  end

  def new
    @subsidiary = Subsidiary.new
  end

  def create
    @subsidiary = Subsidiary.create(subsidiary_params)
    if @subsidiary.save
      redirect_to @subsidiary
    else
      flash[:alert] = 'Você deve informar todos os dados'
      render :new
    end
  end

  def edit
    @subsidiary = Subsidiary.find(params[:id])
  end

  def update
    @subsidiary = Subsidiary.find(params[:id])

    if @subsidiary.update(subsidiary_params)
      redirect_to @subsidiary
    else
      flash[:alert] = 'Você deve informar todos os dados'
      render :new
    end
  end

  private

  def subsidiary_params
    params.require(:subsidiary).permit(:name, :cnpj , :address)
  end
end

子公司模式

class Subsidiary < ApplicationRecord
  validates :name, :cnpj, :address, presence: true
  validates :cnpj, uniqueness: true, length: {is: 14}, numericality: { only_integer: true}
end

子公司/new.html

<h1><%= @subsidiary.name %></h1><br>
<h1><%= @subsidiary.cnpj %></h1><br>
<h1><%= @subsidiary.address %></h1><br>

<p><%= link_to "Editar", edit_subsidiary_path %></p>
<p><%= link_to "Voltar", subsidiaries_path %></p>

标签: ruby-on-railsruby

解决方案


:notice您应该在控制器中的某处显式分配消息,并在视图中的某处显示它。后者可能在您的默认视图中,但在显示的代码中不存在。


推荐阅读