按照本教程“http://allaboutruby.wordpress.com/2009/08/08/5-minute-project-in-rails/”,我无法理解主题中的错误。
根据图书馆修改“app / views / posts / show.html.erb”时会发生这种情况。
现在我已经让它以前的方式工作了(另一个教程),但不得不在帖子控制器中添加@users = user.find_all之类的内容。
我的问题是 - 在不修改控制器的情况下,只将关系添加到模型中 - 你仍然可以使用类似“post.user.name”之类的内容,就像问题中的教程一样。
我是菜鸟 - 但是它与User表没有user_id有关吗?那么帖子的表怎么能把它链接到用户表呢?
任何人都可以做这个教程并实际上让它工作吗?它与我使用RUBY-1.8.6-27而不是最新的2.x.x有什么关系?
我不知道。我需要对它进行排序,因为它将在我想要的应用程序中使用HEAVILY。
答案 0 :(得分:1)
使用此命令创建迁移时:
ruby script/generate migration add_user_id_to_post user_id:integer
迁移脚本会从您的迁移名称知道add
user_id
到Post
模型。 user_id:integer
是标准的ActiveRecord :: Migration代码,用于定义user_id是一个整数。
您将看到使用以下代码生成的迁移:
class AddUserIdToPost < ActiveRecord::Migration
def self.up
add_column :posts, :user_id, :integer
end
def self.down
remove_column :posts, :user_id
end
end
需要运行后:
rake db:migrate
检查数据库以查看Post表中是否存在user_id。否则 post.user.name 将无效
答案 1 :(得分:0)
我有一个不同的例子正常工作 - 认为它可能与用户表没有一个名为“id”的实际列有关 - 就像我工作的那样。
按照那个例子(教程) - 它不会工作。你说它应该吗?与ruby或rails版本有什么关系?我正在使用Windows - Ruby v 1.8.6和rails 2.3.4 - 显然是用于DB的mysql插件。