我对一个实际上并不需要模型的页面的正确设计感到有点困惑。
例如,我想创建一个导出页面,允许用户将各种其他模型导出为CSV。
显然,我需要一个视图(很可能是一个show.html.erb
文件)和一个控制器;但制作某种Export
模型并不是真的有意义,创建新的/编辑/索引视图也是如此。
这样做的正确方法是为我的导出页面手动创建视图+控制器吗?在阅读了很大程度上基于MVC模式的rails文档后,没有一个模型似乎很奇怪,但我也没有看到任何理由我需要"按照这样一个案例的模式来说,模型是没有意义的。
答案 0 :(得分:2)
我的猜测是你正在使用 创建模型的scaffold
生成器。
如果您只想创建视图,控制器会在终端中输入。
rails g controller exports
这将创建与控制器关联的视图,控制器和资产。只需添加路线即可。
resources :exports
答案 1 :(得分:1)
你不需要模特。如果您有模型,轨道中的生成器和假设通常会更好,但您不需要。您可以手动创建控制器和视图,也可以使用rails g controller exports
。
您可能会查看表单对象以在控制器中提供模型 - 这些是普通的旧ruby对象,它们提供没有数据库记录的模型。
导出的表单对象可能如下所示:
class Export
include ActiveModel::Model
include ActiveModel::Validations::Callbacks
end
答案 2 :(得分:0)
在controller
文件夹中创建app/controllers
,如下所示:
class ExportsController < ApplicationController
def show
@export = ... # Your query here
end
end
exports
文件夹中创建名为app/views
的文件夹。show.html.erb
文件夹中创建exports
。 手动添加exports#show
路线,如下所示:
resources "exports", only: [:show]
你应该好好去。在ExportsController中添加必要的auth和before_action方法。