【问题标题】:parse form_for/form_tag to get the url or controller/action解析 form_for/form_tag 以获取 url 或控制器/动作
【发布时间】:2015-12-29 14:30:23
【问题描述】:

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

例如,给定一个“.html.erb”文件,我想取出所有“”标签,以某种方式对其进行解析,并了解之后将调用哪个确切的控制器/动作对我点击提交此表格。例如,以下文件,https://github.com/jcs/lobsters/blob/master/app/views/stories/new.html.erb 第 7 行,“”,我可以通过运行某行代码来确定它将映射到哪个控制器/动作对吗?就像 "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 是否有任何内置功能来处理此类事情?

【问题讨论】:

  • log 可以给你
  • @RajarshiDas 谢谢!你的意思是如果我点击这些表单链接,控制台日志会输出相应的控制器/动作?
  • development.log 或 production.log
  • 我不明白你想要达到什么目的。您能否更改您的问题以包含一个场景,其中您所要求的内容是有意义的?
  • @phoet 谢谢!我添加了更多信息,现在有意义吗?

标签: ruby-on-rails parsing


【解决方案1】:

我不知道我是否正确理解了您的问题,尤其是关于解析您的视图等部分,但您可以通过调用url_for 来生成网址。

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

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

【讨论】:

  • 请问“@user”从何而来,@user的值是什么?
  • 这只是另一个例子。在您的代码中,您已将 @story 传递给 form_for
猜你喜欢
  • 1970-01-01
  • 2013-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-09
  • 2015-10-16
  • 1970-01-01
相关资源
最近更新 更多