我最近开始使用实用程序员的“敏捷Web开发与Rails”一书,之后他对rails有一些早期的经验,但希望采用更有条理的方法。
当他们要求我制作一个控制器管理员时,我很高兴听完这本书,这样我就可以编辑我已经创建的标准CRUD产品模型了。根据这本书,我应该将'scaffold:product'这一行添加到我的admin_controller中,它应该像魅力一样运行。好吧,我的rails只说:“AdminController的未定义方法`脚手架:Class”。
我知道他在书中使用了较旧的rails版本,比如1.8或者其他东西,我知道如何运行普通的脚手架而不是如何使admin_controller继承像Product声明所示的Product中所有多汁的CRUD细节。我尝试将所有视图和脚手架生成的控制器代码从product_controller复制到admin,这很好用,但我真的很想知道这样做的正确方法是什么。
我的admin_controller:
class AdminController < ApplicationController
scaffold:product
end
答案 0 :(得分:2)
您提及的功能动态脚手架已在Rails 2中删除。
如果您是Rails的新手,我建议使用常规脚手架并从那里开始。一旦你获得了更多的经验,就可以很容易地快速酿造你自己的控制器动作。
动态脚手架有一些替代方案可能有助于快速原型设计或者如果您开发了许多类似的功能:
答案 1 :(得分:0)
现在更好的方法是使用支架生成器而不是支架方法。当rails最初开发时,脚手架方法是一个令人印象深刻的展示,但它隐藏了太多,你不能只修改你需要的位。为了解决这个问题,我们将脚手架作为生成器来完成,因为它们会暴露代码并允许您更轻松地编辑它。然后从Rails中移除脚手架方法以防止其使用。