创建一个不需要模型的rails视图+控制器?

时间:2018-01-11 17:13:58

标签: ruby-on-rails view model controller

我对一个实际上并不需要模型的页面的正确设计感到有点困惑。

例如,我想创建一个导出页面,允许用户将各种其他模型导出为CSV。

显然,我需要一个视图(很可能是一个show.html.erb文件)和一个控制器;但制作某种Export模型并不是真的有意义,创建新的/编辑/索引视图也是如此。

这样做的正确方法是为我的导出页面手动创建视图+控制器吗?在阅读了很大程度上基于MVC模式的rails文档后,没有一个模型似乎很奇怪,但我也没有看到任何理由我需要"按照这样一个案例的模式来说,模型是没有意义的。

3 个答案:

答案 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)

  1. controller文件夹中创建app/controllers,如下所示:

    class ExportsController < ApplicationController
      def show
        @export = ... # Your query here
      end 
    end
    
  2. exports文件夹中创建名为app/views的文件夹。
  3. 在刚刚创建的show.html.erb文件夹中创建exports
  4. 手动添加exports#show路线,如下所示:

    resources "exports", only: [:show]
    

    你应该好好去。在ExportsController中添加必要的auth和before_action方法。