form_for给了我错误的path_prefix网址

时间:2010-08-25 23:46:41

标签: ruby-on-rails ruby

我在使用Rails中的form_for方法时遇到问题。它表现得很奇怪。

我有一个带路径前缀的路由,例如:

map.resources :beers, :path_prefix => '/:brewery'

我有一个这样的表格(@ beer.brewery是一个字符串,只是啤酒厂的名字):

<% form_for @beer, :url => { :brewery => @beer.brewery } do |form|
--some fields
<% end %>

它会将表单的操作设置为此记录以用于新记录。

/brewery_name/beers/new

这是现有记录。

/brewery_name/beers/1/edit

任何人都知道为什么会发生这种情况或如何解决它?

- 编辑 -

现在我正在解决这个问题(对于新记录):

 <% form_for @beer, :url => beers_path(@beer.brewery) do |form| %>

和(对于编辑过的记录)

<% form_for @beer, :url => beer_path(@beer.brewery, @beer) do |form| %>

但如果有可能,我想以相同的方式进行新的和编辑。

干杯, 泰斯。

1 个答案:

答案 0 :(得分:0)

我猜你想要这个啤酒厂的啤酒。在那种情况下:

<% form_for [@beer.brewery, @beer] do |f| %>
  -- some fields
<% end %>

通过提供一个数组作为form_for的第一个参数,它将生成一个嵌套资源。