Ruby on rails Rails 4.2多步骤向导的命名约定
轨道4.2 我已经为一个用户模型创建了一个多步骤向导,即应用程序的访问者通过4步表单注册为用户。它在当前设置中工作 然而,我不得不使用require语句来包含几个与向导相关的ruby文件。因此,Rails不会自动加载这些文件 我想重构相关的文件,以便它们遵循Rails约定并能够自动加载 当前结构-正在运行 app/wizards/user.rb用户向导模型-对每个步骤等运行验证 app/controllers/user_-wizards_-controller.rb app/views/wizards/users/step1.html.erb app/views/wizards/users/step2.html.erb 尝试解决方案 基于此, 自动加载路径中的目录被视为根目录,它们不反映名称空间。例如,app/models下面的类不在models名称空间下,任何名称空间都必须位于该目录下 例如,文件app/services/doctor_finder.rb不遵循自动加载约定,因为它定义了services::DoctorFinder而不是DoctorFinder。因此,无法自动加载该文件 我要去 模型 app/wizards/user/user.rb app/wizards/user/base.rb app/wizards/user/step1.rb app/wizards/user/step2.rb app/wizards/user/step3.rb app/wizards/user/step4.rbRuby on rails Rails 4.2多步骤向导的命名约定,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,轨道4.2 我已经为一个用户模型创建了一个多步骤向导,即应用程序的访问者通过4步表单注册为用户。它在当前设置中工作 然而,我不得不使用require语句来包含几个与向导相关的ruby文件。因此,Rails不会自动加载这些文件 我想重构相关的文件,以便它们遵循Rails约定并能够自动加载 当前结构-正在运行 app/wizards/user.rb用户向导模型-对每个步骤等运行验证 app/controllers/user_-wizards_-controller.rb app/views/wiza
然而,我并没有走得很远。有什么想法吗?如果要自动加载这些文件,请将其移动到服务或步骤目录中,如:
app/services/wizards/user/step1
rails应自动加载模块:
module Wizards::User
class Step1
end
end
根据rails版本,您需要将“服务”添加到自动加载路径
关于意见:
render 'wizards/users/step1'
不坏,在我看来可以被认为是很好的实践。使用Rever方法允许你传递非全局变量来查看
如果要删除此行,应将UserWizardsController的视图放到user\u wizards/step1.html.xxx 或者如果您想在向导/users/step1.html.xxx中查看 您应该以这种方式确定控制器的范围:module Wizards
class UsersController < ApplicationController
end
edn
这可能会有帮助:谢谢Jay-Ar。这很有帮助。我取得了一些进展。如果有人需要一个解决方案,问问我,我会告诉你我是怎么做的。
render 'wizards/users/step1'
module Wizards
class UsersController < ApplicationController
end
edn