为现有控制器创建新操作

时间:2012-08-12 14:11:47

标签: ruby-on-rails ruby-on-rails-3

我知道这可能是一个新手问题,但是可以从现有控制器上的命令行创建一个新动作(控制器和相关视图中的方法)吗?

例如,我已经有一个名为'Products'的控制器。我可以跑:

rails g controller products [new_action]

然后rails会插入:

def [new_action]

end

进入我的产品控制器并在views / products /目录中创建一个名为'[new_action] .html.erb'的新文件?我已经用谷歌搜索了这个,但没有回复令人满意的答案。此外,我会继续尝试它,但我对我当前的应用程序的开发很远,并且真的不想弄乱任何东西。

3 个答案:

答案 0 :(得分:14)

我很确定你无法以100%自动化的方式做到这一点。原因是Rails不知道你对路由或控制器做了什么,并且需要一些逻辑来知道如何更新这些现有文件。您最好的选择是手动添加新操作。将新方法添加到控制器,更新路由文件,然后添加视图。最多可能需要1分钟。此外,如果您没有使用版本控制器(您的问题没有提到),那么您不必担心它会自动覆盖某些内容。

答案 1 :(得分:0)

Rails提供了创建自定义生成器的可能性(但这是更高级的主题),可以根据您的需求进行定制。

更多信息:

http://guides.rubyonrails.org/generators.html

答案 2 :(得分:0)

我们可以在控制器和视图中手动创建操作,但是您还应该添加测试语句,因为这应该是一个很好的自动化过程,比如rails生成控制器NAME [action action]选项m m =合并