自定义rails生成脚手架

时间:2014-10-26 02:41:58

标签: ruby-on-rails scaffolding

我有一个问题,在命令" rails生成脚手架测试名称之前:string"生成的控制器如下:

class Teste < ApplicationController
  before_action :set_teste, only: [:show, :edit, :update, :destroy

  # GET /testes
  # GET /testes.json
  def index
    @testes = Teste.all
  end

  # GET /testes/1
  # GET /testes/1.json
  def show
  end

  # GET /testes/new
  def new
    @teste = Teste.new
  end

  # GET /testes/1/edit
  def edit
  end

  # POST /testes
  # POST /testes.json
  def create
    @teste = Teste.new(teste_params)

    respond_to do |format|
      if @teste.save
        format.html { redirect_to testes_path, notice: 'Teste cadastrado.' }
        format.json { render :show, status: :created, location: @teste }
      else
        format.html { render :new }
        format.json { render json: @teste.errors, status: :unprocessable_entity }
      end
    end
  end

  # PATCH/PUT /testes/1
  # PATCH/PUT /testes/1.json
  def update
    respond_to do |format|
      if @teste.update(teste_params)
        format.html { redirect_to testes_path, notice: 'Teste atualizado.' }
        format.json { render :show, status: :ok, location: @teste }
      else
        format.html { render :edit }
        format.json { render json: @teste.errors, status: :unprocessable_entity }
      end
    end
  end

  # DELETE /testes/1
  # DELETE /testes/1.json
  def destroy
    @teste.destroy
    respond_to do |format|
      format.html { redirect_to testes_url, notice: 'Teste excluído.' }
      format.json { head :no_content }
    end
  end

不知道为什么,但现在正在生成另一种格式

class TestesController < ApplicationController
  before_action :set_teste, only: [:show, :edit, :update, :destroy]

  def index
    @testes = Teste.all
    respond_with(@testes)
  end

  def show
    respond_with(@teste)
  end

  def new
    @teste = Teste.new
    respond_with(@teste)
  end

  def edit
  end

  def create
    @teste = Teste.new(teste_params)
    @teste.save
    respond_with(@teste)
  end

  def update
    @teste.update(teste_params)
    respond_with(@teste)
  end

它能是什么?为什么这会改变?

我会以之前的格式返回,因为我的整个系统是第一种格式

1 个答案:

答案 0 :(得分:2)

这种行为的原因可能是一些宝石。

我遇到了同样的问题,因为Devise的最新版本现在附带了Responders gem。

如果是这种情况,那么快速修复就是在aplication.rb文件中添加以下行:

config.app_generators.scaffold_controller :scaffold_controller

更多信息:

https://github.com/rails/rails/issues/17290

https://github.com/plataformatec/responders/issues/94