我有帖子和类别。我在他们两个之间建立了关联,所以现在我可以创建一个新的Post is Posts / new并选择我想要的类别并在Category / 1 / show中显示帖子。我希望能够转到Categories / 1并创建一个包含该类别的新帖子,而无需在表单中选择一个类别。
有人能帮助我吗?谢谢。
模特:
类别:
class Category < ActiveRecord::Base
has_many :places
end
地点:
class Place < ActiveRecord::Base
belongs_to :category
end
在地方#show中我有这个链接:
<%= link_to 'Edit', edit_place_path(@place) %>
在categories_controller中:
def show
@category = Category.find(params[:id])
@title = @category.name
@posts = @category.places
end
表格形式:
</div>
<div class="field">
<%= f.label :category_id %><br>
<%= f.select :category_id, Category.all.collect {|p| [ p.name, p.id ] }, { include_blank: true } %>
</div>
答案 0 :(得分:2)
您应该在categories#show
视图中添加新链接:
<%= link_to 'Post to this Category', new_post_path(category_id: @category.id) %>
#=> <a href="posts/new?category_id="2">Post to this Category</a>
然后修改您的posts#new
方法:
def new
@post = Post.new
@post.category = Category.find(params[:category_id]) if params[:category_id].present?
end
使用此选项可以选择类别。