gpt4 book ai didi

ruby-on-rails - 在 Rails 中更改脚手架 Controller 生成器模板

转载 作者:行者123 更新时间:2023-12-04 22:10:55 24 4
gpt4 key购买 nike

当我使用 Rails 脚手架生成器创建我的 Rails 文件时,它会创建一个 Controller 文件。例如
rails generate scaffold potato
产生:
app/controllers/potatos_controller.rb
对于我的项目,我希望这个文件更具体一点。例如。我想改变这个自动生成的 Action :

def create
@potato = Potato.new(potato_params)

respond_to do |format|
if @potato.save
format.html { redirect_to @potato, notice: 'Potato was successfully created.' }
format.json { render :show, status: :created, location: @potato }
else
format.html { render :new }
format.json { render json: @potato.errors, status: :unprocessable_entity }
end
end
end

使用 I18n 翻译而不是硬编码的“马铃薯已成功创建”。我也想改变一些缩进,因为 rubocop 总是提示它。

我找到了脚手架生成器的模板,现在想进行更改。为此,我在我的项目中创建了一个文件: lib/templates/rails/scaffold_controller/templates/controller.rb在此文件中,我进行了更改。 (例如我改变了行
redirect_to @<%= singular_table_name %>, notice: <%= "'#{human_name} was successfully created.'" %>


redirect_to @<%= singular_table_name %>, notice: <%= "'#{human_name} THIS IS A TEST.'" %>

但不幸的是,这些更改不起作用。脚手架生成器仍然使用自己的模板。那么我在这里做错了什么?我错过了一步吗?

更新:
这是生成命令的输出:
rails generate scaffold potato      

Running via Spring preloader in process 31479
invoke active_record
...

invoke scaffold_controller
create app/controllers/potatos_controller.rb
...

railties的截图:

Railtiesenter image description here

最佳答案

如果有人觉得它有用,您可以通过在项目目录中运行以下命令将默认的 railties Controller 脚手架模板复制到您自己的项目中:

mkdir -p lib/templates/rails/scaffold_controller && \
cp $(bundle show railties)/lib/rails/generators/rails/scaffold_controller/templates/* \
lib/templates/rails/scaffold_controller

如果你使用 Rails 5.2 和 jbuilder,你应该使用 jbuilder脚手架作为基础:
mkdir -p lib/templates/rails/scaffold_controller && \
cp $(bundle show jbuilder)/lib/generators/rails/templates/* \
lib/templates/rails/scaffold_controller

关于ruby-on-rails - 在 Rails 中更改脚手架 Controller 生成器模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35337732/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com