解析form_for / form_tag以获取url或controller / action

时间:2015-12-29 14:30:23

标签: ruby-on-rails parsing

我想解析erb文件中的form_for和form_tag语句,以确定它们发布到哪个URL或将调用哪个控制器/操作。

例如,给定一个“.html.erb”文件,我想得到所有“<%= form_for%>”标记出来,以某种方式解析它,并在我点击提交此表单后了解将调用哪个确切的控制器/操作对。例如,以下文件https://github.com/jcs/lobsters/blob/master/app/views/stories/new.html.erb 第7行,“<%= form_for @story do | f |%>”,我可以通过运行一行代码来确定它将映射到哪个控制器/操作对吗?就像“routes.recognize_path'form_for @story do | f |'”这样的事情?

的form_tag form_tag(url_for_options = {},options = {},& block)

的form_for form_for(record,options = {},& block)

看起来我需要以某种方式获取url_for_options和options对象并获取url元素。有没有简单的方法可以做到这一点,还是有现成的工具可以实现这些功能? rails有什么内置功能吗?

1 个答案:

答案 0 :(得分:0)

我不知道我是否理解你的问题,尤其是解析你的观点等部分,但你可以通过调用url_for来生成网址。

例如,在您的rails控制台中,您可以执行以下操作:

include Rails.application.routes.url_helpers
default_url_options[:host] = "localhost"
url_for @user # => "http://localhost/users/1"