У меня есть представление с частичным, например:
# 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?