Ruby on Rails博客与作者

时间:2011-04-22 20:54:33

标签: ruby-on-rails

我正在尝试创建一个拥有作者页面的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

1 个答案:

答案 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

所以它会起作用