0

我正在尝试完成这样的事情:

我正在创建一个简单的博客。我已经为我的博客设置了类别。我希望当我的用户转到帖子/索引时,他会看到所有类别的列表。

示例:文本图像

单击类别后,我的用户将被重定向到帖子/新页面,其中 category_id 字段将通过 hidden_​​field 传输。

所以我现在的代码是:

在帖子/索引中

<% @categories.each do |c| %> 
  <%= link_to c.name, new_post_path(:category => c.id) %><br />
<% end %>

在我的帖子/_form 中,我正在尝试做这样的事情

<%= f.hidden_field :category_id, :value => params[:category_id] %>

但这是行不通的,因为 html 输出是

没有值被传递。

在这里进行的正确方法是什么?谢谢!

4

2 回答 2

1

乍一看,混淆了参数名称 category 和 category_id 似乎是一个简单的错误。

尝试这个:

<% @categories.each do |c| %> 
  <%= link_to c.name, new_post_path(:category_id => c.id) %><br />
<% end %>
于 2012-07-19T01:27:50.090 回答
1

另外,根据我在您的代码中的理解,似乎帖子属于一个类别。在这种情况下,您可以将一个路由嵌套在另一个路由中,并且可以访问创建嵌套对象的路径,例如 new_category_post(@category)。

路由看起来像这样:

resources :categories do
  resources :posts
end

您可以在此处阅读有关此问题的信息:http: //guides.rubyonrails.org/routing.html

于 2012-07-19T01:42:52.153 回答