我在使用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| %>
但如果有可能,我想以相同的方式进行新的和编辑。
干杯, 泰斯。
答案 0 :(得分:0)
我猜你想要这个啤酒厂的啤酒。在那种情况下:
<% form_for [@beer.brewery, @beer] do |f| %>
-- some fields
<% end %>
通过提供一个数组作为form_for
的第一个参数,它将生成一个嵌套资源。