如何将许多Model类放在一个模块中以在Rails中使用

时间:2011-01-21 07:35:53

标签: ruby-on-rails model

在rails中我有很多表,需要定义很多用于控制器的Model类,但是我想把所有的模型类放到一个模块文件中,然后让控制器使用模型类。模块,但我不知道该怎么做。

有人可以帮我解决这个问题吗?非常感谢你的帮助。

2 个答案:

答案 0 :(得分:4)

app/models/widgets/blue_widget.rb
class Widgets::BlueWidget < ActiveRecord::Base
  // etc.
end

app/controllers/blue_widget_controller.rb
def index
  @widgets = Widgets::BlueWidget.all
end

您还可以命名控制器。

编辑:

lib/widgets.rb
module Widgets
  class BlueWidget
  end

  class RedWidget
  end
end

controller:
require 'lib/widgets'
def index
  @widgets = Widgets::BlueWidget.all
end

这是你的意思吗?

答案 1 :(得分:0)

您也可以直接在子目录中生成模型并获取模块:

rails g model user/likes name:string like:boolean

您将获得生成的文件。

生成的模型将在app / models / user / likes.rb

class User::Likes < ActiveRecord::Base
end