有没有办法在 Ruby on Rails routes.rb 中定义没有“/new”的新操作路径?
Posted
技术标签:
【中文标题】有没有办法在 Ruby on Rails routes.rb 中定义没有“/new”的新操作路径?【英文标题】:Is there a way to define path of new action without '/new' in Ruby on Rails routes.rb? 【发布时间】: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
操作仅作为显示表单的一种方式存在 - 如果您在显示操作上有一个表单,则不需要。
【参考方案1】:
您可以更改路径名,如下所示:
scope(path_names: new: 'neu', edit: 'bearbeiten' ) do
resources :categories, path: 'kategorien'
end
参考:https://guides.rubyonrails.org/routing.html#translated-paths
【讨论】:
也可以直接在resources
方法上设置。见guides.rubyonrails.org/…以上是关于有没有办法在 Ruby on Rails routes.rb 中定义没有“/new”的新操作路径?的主要内容,如果未能解决你的问题,请参考以下文章
2020ruby和ruby on rails想说再爱你不容易:安装rails失败解决办法