【发布时间】:2012-03-27 23:34:15
【问题描述】:
我有大约 5 个行为非常相似的模型。事实上,我希望他们分享一个展示它们的动作。例如,对于模型 Car、Truck、Van,我希望有如下定义:
[Car, Truck, Van].each do |Model|
action_for Model do #I made this up to show what I mean
def index
@model = Model.all
@model_names = @model.map(&:name).join(', ')
end
end
end
我将如何做到这一点,这样我就不会在多个控制器中定义相同的操作? (这不是很干燥)它会在 application_controller 中吗?如果问的不是太多,我怎么能这样做,以便他们也分享观点?
更新
如果这可以在各个控制器之外,那将是首选。如果我可以让它正常工作,我什至不想生成单独的控制器。
【问题讨论】:
-
您可能有兴趣窥探或使用 José Valim 的 Inheritable Resources。 ActiveAdmin 将其用于默认的 RESTful 操作。
标签: ruby-on-rails ruby-on-rails-3 model