我有protected void paintComponent(Graphics g) {
super.paintComponent(g);
模型post
belongs_to
模型。帖子资源嵌套在类别资源下。我正在构建category
来创建新帖子。但是,我收到以下错误:
form_for @post
根据我的路线,它应该指向undefined method 'posts_path' for #<#<Class:0x007fd54ba33540>:0x007fd54c8e57c8>
,但我不确定为什么不是。{1}}。我尝试了here提出的解决方案,因为它与我的情况非常相似,但无济于事。有什么想法吗?
routes.rb中:
new_category_post_path
app / models / category.rb和post.rb:
resources :categories do
resources :posts
end
应用/控制器/ posts_controller.rb:
class Category < ActiveRecord::Base
has_many :posts
end
class Post < ActiveRecord::Base
belongs_to :category
end
视图/帖/ new.html.erb:
class PostsController < ApplicationController
def new
@category = Category.find(params[:category_id])
@post = @category.posts.new
end
end
佣金路线:
<%= form_for @post do |f| %>
<%=f.text_field :title, placeholder: 'Title...' %>
<%=f.text_area :content %>
<%=f.submit 'Create post' %>
<% end %>
答案 0 :(得分:0)
如果要嵌套资源,则需要确保form_for帮助程序中生成的URL知道如何正确执行该操作。在这种情况下,您需要传递2个对象,post对象和category对象。位置是第一个,新对象在数组中是第二个,因此您的表单看起来更像是:
<%= form_for [@category,@post] do |f| %>
<%=f.text_field :title, placeholder: 'Title...' %>
<%=f.text_area :content %>
<%=f.submit 'Create post' %>
<% end %>