我用下面呈現一個集合:的Rails:路線忽略參數
<%= render :partial => 'mini_release', collection: group, as: :r %>
與以下路線:
constraints(domain: /[a-zA-Z0-9-]+/i, page: /[0-9]+/, :format => 'html') do
get ':domain', :to => 'sites#show', as: :site
get ':domain/releases(/p-:page)', :to => 'sites#releases', as: :site_releases, :constraints => { :format => /(json|html)/ }
get ':domain/release/:release_id', :to => 'sites#release', as: :site_release
end
所有好爲止,路由工程和渲染作品。但是,調用路徑時下方的部分的「mini_release」裏面,它建立一個不正確的URL:
<%= link_to site_release_path(:domain => r.site.domain, :release_id => r), :class => 'col-xs-6' do %>
凡r
是Release
模型,並具有一個Site
(其具有的屬性domain
)。
根據生成的URL生成的URL是正確的。但:domain
部分始終不正確,並且是當前的模型對象。
例如,說我目前所在的頁面是:/site-one/release/my-release/
並且我渲染了部分,所有部分導致/site-one/release/the-correct-slugs
,它們應該是/some-other-site/release/the-correct-slugs
。我已經嘗試了多種格式的路線 - 有和沒有變量關聯 - 但沒有工作。看來這條路線正在採用當前路線:domain
而不是給定的參數。
如何確保路線停止查看當前的:domain
參數?
這可能是與此https://github.com/rails/rails/issues/9829
我檢查過,是的,它返回了正確的域 – Ashley
不怕,沒有什麼變化 – Ashley
不幸的是,刪除約束沒有區別。這可能與https://github.com/rails/rails/issues/9829有關 – Ashley