我在Rails中很新。对不起,菜鸟问题。
我创建了一个新的控制器: rails new controller Say hello goodbye
如何向该现有控制器添加新操作,例如“ hello”和“再见”?
添加新动作很简单。您要做的就是在控制器上添加一个方法,例如:
# app/controllers/dummy_controller.rb
def get_back
logger.warn "It works!"
redirect_to :back
end
现在,为了能够通过URL访问此操作,您需要有一个路由。这是在您的config/routes.rb
文件中完成的。您可以将其添加为困难路线,例如
get '/go_back', to: "dummy#get_back"
这是最简单的路线。但是您可能希望它表现得像一条宁静的路线。如果您要对一个或多个模型进行操作,这将很有用。因此,在您的路由文件中,您将具有以下内容:
resources :dummy do
collection do
get 'get_back'
end
end
这使您可以接受get
集合上的方法。您将拥有帮助器dummy_go_back_url
,并且到达此页面的URL是/dummies/go_back
。
这是为了对资源集合进行操作。如果要对一个特定对象执行操作,则应指定一个member
操作:
resources :dummy do
member do
get 'get_back'
end
end
由于成员操作仅适用于一个对象,因此您将拥有一个类似的网址/dummies/123/go_back
。这将自动将params[:id]
控制器中的变量设置为123
,使您可以轻松获取对象。另外,dummy_go_back_path
定义了辅助方法,并接收了一个对象或id作为参数来生成正确的url。
这些是您可以拥有的最简单的路线,但您可以将Rails Guides中的外部路线作为可靠的信息来源。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句