2012-05-29 52 views
1

还在学习rails,做我的第一个项目。Rails 3.2 button_to不传递GET变量

我试图让新的一页已经选定的类别从下拉菜单中传递一个额外的“类别”变量“新”法在我的“页面”控制器

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

我做它

它工作时,我使用的link_to

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

,但是当我试图button_to

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

变量“cat”未传递到“新”操作视图。这不是一个大问题,但它拧了我的布局,因为我在所有其他地方使用button_to,我只是希望有更好的方式来解决它,添加更多的CSS,因此它会看起来相同

+0

我使用https://github.com/thoughtbot/bourbon查看漂亮的按钮,它也可能适用于你 –

回答

0

一个可能的的方式来解决这个问题是创建一个形式的隐藏字段

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

您的版本不起作用,因为“button_to”方法创建只从输入字段通过PARAMS到浏览器的形式。