Я бы сказал, что да, вам нужно переосмыслить проблему. Объявление
class DoableImpl implements Doable<Foo<Bar<Baz,Qux>>,Foo<Bar<Zot,Qux>>> {
Foo<Bar<Baz,Qux>> doIt(Foo<Bar<Zot,Qux>> fooBZQ) { ... }
}
является довольно очевидным случаем чрезмерного использования дженериков.
Зачем вам нужно передавать их в строку URL? Почему бы просто не добавить их как скрытые поля в форму? Почти во всех случаях вы должны передавать переменные таким образом с помощью POST.
Я думаю, вам нужно переместить желаемые атрибуты строки запроса за пределы параметра: url, например:
form_for @user, :url => { :action => :update }, :type => @type, :this => @currently_editing do |f|
Я бы использовал скрытые поля, но это должно работать:
<% form_for @user, :url => user_path(@user.id, :type => @type, :this => @currently_editing), :method => :put do |f| -%>
: method =>: put
запускает действие обновления при использовании маршрутов RESTful.