加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails-3 – Rails嵌套奇异资源路由附加.ID

发布时间:2020-12-17 02:03:58 所属栏目:百科 来源:网络整理
导读:我有以下嵌套的单一路线: resources :listings do resource :logo,only: [ :edit,:update ]end 它按预期生成2条正确的路由: edit_listing_logo GET /listings/:listing_id/logo/edit(.:format) logos#editlisting_logo PUT /listings/:listing_id/logo(.:f
我有以下嵌套的单一路线:

resources :listings do
  resource :logo,only: [ :edit,:update ]
end

它按预期生成2条正确的路由:

edit_listing_logo GET /listings/:listing_id/logo/edit(.:format) logos#edit
listing_logo PUT /listings/:listing_id/logo(.:format) logos#update

现在,当我重定向到edit_listing_logo_path

redirect_to edit_listing_logo_path( @listing,@logo )

或者当我创建更新表单时

<%= form_for [ @listing,@logo ] do |f| %>

结果链接总是像这样附加到最后的单一资源ID

/listings/2/logo.1

我在这个应用程序中没有使用响应格式,所以它工作正常.但是这个链接生成看起来很奇怪,如果用于各种响应格式,我希望它会引起问题.

请注意,这也在这里讨论Rails Nested Singular Resource Routing,但我根本没有使用’show’路径.

谢谢你的任何投入.

解决方法

我相信你可以通过使用详细路径方法edit_listing_logo_path(@listing)(如@Martin Sojka所述)或使用符号而不是对象本身来获得所需的答案.

因此,而不是使用正常形式:

form_for [ @listing,@logo ]

您可以通过编写以下内容来处理对象特性(和尾随ID):

form_for [@listing :logo]

如果你想在控制器上调用另一个动作,你可以在数组中加前缀:

form_for [:edit,@listing :logo]

希望它对你有用 – 它似乎解决了我的问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读