我正在尝试创建一个拥有作者页面的rails博客,其中作者将链接到作者对博客所做的所有帖子。因此,将有一个主要的博客帖子页面已经提供,我可以点击任何帖子阅读它,并点击任何帖子的作者,以查看该作者的页面。这将列出作者所贡献的所有文章。
我正在关注创建ruby博客http://sixrevisions.com/web-development/how-to-create-a-blog-from-scratch-using-ruby-on-rails的许多教程之一,但他们使用的示例仅将帖子链接到评论。我不想要评论,而是希望将帖子链接到作者。我显然是非常新的rails并且无法解释为什么我的结构不起作用。当我尝试提交新的博文时,我收到了错误
"Author(#-607384868) expected, got String(#-604052448)"
我使用的博客提供了以下示例命令来创建帖子和评论。
ruby script/generate scaffold post title:string body:text
ruby script/generate scaffold comment name:string body:text post:references
我正在尝试使用
ruby script/generate scaffold post title:string body:text author:reference
ruby script/generate scaffold author name:string bio:text posts:references
但这显然不起作用。有人可以指出我正确的方向来建立帖子和作者之间的正确关系吗?提前谢谢
修改的 我把它们放在下面的评论中,但它们可能很难阅读。我的一些文件如下: 的routes.rb
ActionController::Routing::Routes.draw do |map|
map.resources :posts, :belongs_to => :author
map.connect ':controller/:action/:id'
map.connect ':controller/:action/:id.:format'
map.root :controller => "posts"
end
post.rb
belongs_to :author
author.rb
has_many :posts
答案 0 :(得分:2)
我认为你有像
这样的领域<%= f.author ... %>
你应该使用
<%= f.author_id ... %>
您的生成器出错:
ruby script/generate scaffold post title:string body:text author:reference
您需要将广告“s”发送到reference
ruby script/generate scaffold post title:string body:text author:references
所以它会起作用