我正在使用以下内容来呈现集合:
<%= 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 %>
Wherer
是一个模型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
参数?