【问题标题】:Using URL helpers from the console in Ruby on Rails 2.3.11在 Ruby on Rails 2.3.11 的控制台中使用 URL 助手
【发布时间】:2014-10-20 01:15:08
【问题描述】:

我正在尝试在 2.3.11 Ruby on Rails 应用程序中使用 URL 帮助程序,但无论我尝试何种解决方案,我都面临许多问题...

在尝试获取路径之前,我已经阅读了很多“解决方案”,例如包括 include ActionController::UrlWriter,但每次都会遇到相同的错误:

>> app.users_path
NameError: undefined method `new_suggestion_path' for class `ActionController::Integration::Session'

我找不到这个问题。我有一个“建议”控制器和一个“新”操作...有没有其他方法可以解决这个问题并从控制台和/或 Rake 获取 URL?

【问题讨论】:

  • 你想通过在控制台中使用 url 助手来实现什么。您可以从 Rails 应用程序的根目录运行 rake routes 以查看所有可用路线。
  • 如果这是一个严重的应用程序,我建议尝试升级它。 Rails 2 已经很老了。
  • 太大了,不能考虑升级@JustinWood。
  • 我想从控制台获取所有路由以使用 nokogiri @Iceman 访问和解析每个 url

标签: ruby-on-rails ruby ruby-on-rails-2


【解决方案1】:

您需要为您尝试访问的命名路由定义资源路由。

要使 suggestion 路径在 Rails 2.3 中可用,请添加资源路由 config/routes.rb:

ActionController::Routing::Routes.draw do |map|
  map.resources :suggestions
end

这将定义以下路线:

     suggestions GET    /suggestions(.:format)          {:controller=>"suggestions", :action=>"index"}
                 POST   /suggestions(.:format)          {:controller=>"suggestions", :action=>"create"}
  new_suggestion GET    /suggestions/new(.:format)      {:controller=>"suggestions", :action=>"new"}
 edit_suggestion GET    /suggestions/:id/edit(.:format) {:controller=>"suggestions", :action=>"edit"}
      suggestion GET    /suggestions/:id(.:format)      {:controller=>"suggestions", :action=>"show"}
                 PUT    /suggestions/:id(.:format)      {:controller=>"suggestions", :action=>"update"}
                 DELETE /suggestions/:id(.:format)      {:controller=>"suggestions", :action=>"destroy"}

现在您可以在控制台中使用这些路由:

>> app.new_suggestion_path
=> "/suggestions/new"
>> 

【讨论】:

  • 我已经有了这条路线:map.resources :suggestions,:only => [:new, :create]
猜你喜欢
  • 2015-03-03
  • 2011-07-13
  • 1970-01-01
  • 2011-10-05
  • 1970-01-01
  • 2017-01-13
  • 1970-01-01
  • 2010-09-14
相关资源
最近更新 更多