【问题标题】:Is there a way to define path of new action without '/new' in Ruby on Rails routes.rb?有没有办法在 Ruby on Rails routes.rb 中定义没有“/new”的新操作路径?
【发布时间】:2021-12-21 06:30:48
【问题描述】:

有没有办法在 Ruby on Rails routes.rb 中通过编写 resources 来定义不带“/new”的新操作路径?

我想将/p/e/:article_id 的页面定义为popular/contacts#new 操作。

然后,我在下面写了。

namespace :popular, path: 'p' do
  resources :contacts, only: [:new], path: 'e/:article_id'
end

但是,上面的结果是这样的。

new_popular_contact GET   /p/e/:article_id/new(.:format)    popular/contacts#new

如果可能的话,我想使用resources,但是我是否只能使用get而不是resources

namespace :popular, path: 'p' do
  get '/e/:article_id' => 'contacts#new'
end

谢谢

【问题讨论】:

  • @DaveNewton 再看一遍——ID是文章的,不是联系人的。
  • @TomLord 啊,对——完全误读了。
  • 你找错树了。而不是将e/:article_id 路由到新操作,您实际上应该在显示操作上放置一个表单。当然它是可能的,但它是一个简单问题的古怪而令人惊讶的解决方案。 new 操作仅作为显示表单的一种方式存在 - 如果您在显示操作上有一个表单,则不需要。

标签: ruby-on-rails ruby ruby-on-rails-5


【解决方案1】:

您可以更改路径名,如下所示:

scope(path_names: { new: 'neu', edit: 'bearbeiten' }) do
  resources :categories, path: 'kategorien'
end

参考:https://guides.rubyonrails.org/routing.html#translated-paths

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多