проблема области маршрутизации с form_for (частичная) - PullRequest
4 голосов
/ 30 июля 2010

Попытка маршрута:

scope :shortcut do
 resources :text_elems
end

Использование базовых лесов с частичной формой

*_form.html.erb*
<%= form_for(@text_elem, :shortcut => @shortcut) do |f| %> 
...

Проблема в : когда я вызываю действие edit , форма html отображается как:

<form ... action="/25/text_elems/25">

Примечание: Действие new правильно отображает действие формы:

<form ... action="/home/text_elems">

Похоже, что параметр my: shortcut превосходит параметр: id, когда form_for обрабатывает свой блок. Теперь я могу получить действие для правильной маршрутизации с параметром: shortcut, если я вручную сделаю: url => {...} в блоке form_for, но я бы предпочел сохранить код сухим, плюс я хочу сообщить эта проблема для рельсов, если это действительно ошибка.

Может ли кто-нибудь еще подтвердить это как ошибку?

Ответы [ 2 ]

2 голосов
/ 17 января 2012

У меня были те же проблемы, и ни один из приведенных выше ответов не помог.

Последний ответ на этой странице работал для меня, хотя ...

https://rails.lighthouseapp.com/projects/8994/tickets/6736-problem-with-scoped-routes-and-form_for-helper

2 голосов
/ 16 мая 2011

На самом деле, вы можете передавать значения в виде полного хэша, вместо того, чтобы пытаться полагаться на значение по умолчанию to_param (что вызывается, если все, что вы делаете, это передаете @text_elem)

<%= form_for({:id => @text_elem.to_param, :shortcut => @shortcut}) do |f| %> 

однако, если это на самом деле вложенный ресурс, вы также можете сделать:

<%= form_for([@shortcut, @text_elem]) do |f| %> 
...