我有一个部分视图,如下所示:
# my_controller/my_view
The value of the parameter is <%= @parameter %>
<%= render :partial "my_contoller/my_partial", locals: {internal_param: @parameter_for_partial %>
#my_controller/my_partial
<div>
The value of the internal parameter is <%= internal_param %><br />
<%= link_to "Link", {:partial_url_param => internal_param + 1} %>
</div>
控制器操作采用 URL 参数:
def class MyControllerController < ApplicationController
def my_action
@parameter = params[:parent_view_url_param]
@parameter_for_partial = params[:partial_url_param]
end
end
现在,当我转到 时/my_controller/my_view?parent_view_url_param=1&partial_url_param=2
,我得到一个如下所示的页面:
The value of the parameter is 1
<div>
The value of the internal parameter is 2<br />
<a href="/my_controller/my_view?partial_url_param=3">Link</a>
</div>
我希望链接指向/my_controller/my_view?parent_view_url_param=1&partial_url_param=3
,原始链接中的所有 URL 参数都相同,除了部分直接覆盖的参数。此外,如果我添加更多参数,我希望部分中的链接也保留这些参数,而不需要我对部分进行任何更改。
在 Rails 4 中有没有办法做到这一点?