ruby-on-rails - Rails 控制器脚手架代码
问题描述
对于一个大学项目,我希望对 Rails 脚手架机制进行一些更改。主要是想知道控制器脚手架代码是在哪里生成的。
在查看代码的生成位置时,我发现这里看起来像适当的位:https://github.com/rails/rails/blob/master/railties/lib/rails/generators/rails/scaffold_controller/templates/controller。 rb.tt
不过改了之后好像没什么区别。我都试过了rails g scaffold ....
和rails g scaffold_controller ...
。
我还注意到我最终得到的代码看起来与我对模板的期望不同。
模板:
# PATCH/PUT <%= route_url %>/1
def update
if @<%= orm_instance.update("#{singular_table_name}_params") %>
redirect_to <%= redirect_resource_name %>, notice: <%= "'#{human_name} was successfully updated.'" %>
else
render :edit
end
end
现实(dogs_controller.rb):
# PATCH/PUT /dogs/1
# PATCH/PUT /dogs/1.json
def update
respond_to do |format|
if @dog.update(dog_params)
format.html { redirect_to @dog, notice: 'Dog was successfully updated.' }
format.json { render :show, status: :ok, location: @dog }
else
format.html { render :edit }
format.json { render json: @dog.errors, status: :unprocessable_entity }
end
end
end
所以主要是生成的代码也响应 json 请求,而模板看起来并不尊重这一点。
脚手架控制台输出也声称invoke scaffold_controller
.
然后这里还有代码:https ://github.com/rails/rails/blob/master/railties/lib/rails/generators/rails/controller/templates/controller.rb.tt但那更简单。
长话短说,我做错了什么或者脚手架的控制器代码在哪里生成。
仅供参考,我在提交 a1f9fe8bdd4e6c4e20fbda424c0ecf2f31fabd30 处克隆了 rails 并从那里分支,所以最近。
解决方案
推荐阅读
- django - 如何在 django 中添加 bootstrap 4 datepicker
- php - 带有多个模板 cakephp 的单页
- ms-access - 3001:无效参数 - 必填字段
- java - 如何生成自动学生证号码?
- android - 从 Retrofit 调用中获取数据并将其发送到另一个活动
- tsql - 如果文字不包含通配符,为什么我不能用 col <> 文字替换 ISNULL(col, literal) NOT LIKE 文字?
- php - PHP 文件中的 PhpStorm 实时重新加载
- unity3d - 我可以使用这个 Unity 着色器避免垂直纹理拉伸吗?
- wordpress - 基于帖子的滑块
- mysql - MySQL系统数据库损坏