1

还在学习rails,做我的第一个项目。

我正在尝试将一个额外的“类别”变量传递给我的“页面”控制器中的“新”方法

def new
    @page = Page.new
    @cats = Cat.all
end

我正在这样做,所以新页面已经从下拉菜单中选择了类别

当我使用 link_to 时它可以工作

<%= link_to "Create new page", new_page_path(:cat => @cat.id) %>

但是当我尝试使用 button_to

<%= button_to "Create new page", new_page_path(:cat => @cat.id), method: :get %>

变量“cat”没有传递给“new”动作视图。这不是一个大问题,但它搞砸了我的布局,因为我在所有其他地方都使用 button_to,我只是希望有一个更好的方法来解决它,添加更多的 css 让它看起来一样

4

1 回答 1

0

解决此问题的一种可能方法是创建一个带有隐藏字段的表单

<%= form_tag new_page_path(), :method => :get do
    hidden_field_tag "cat", @cat.id
    button_to "Create new page"
end %>

您的版本不起作用,因为“button_to”方法创建了一个表单,该表单仅从输入字段将参数传递给浏览器。

于 2012-06-21T15:30:50.437 回答