Ruby on rails 当您没有';我没料到!

Ruby on rails 当您没有';我没料到!,ruby-on-rails,Ruby On Rails,遵循本教程“”,我无法克服主题中的错误 它发生在我根据tuorial修改“app/views/posts/show.html.erb”时 现在,我已经用另一种方法(另一个教程)实现了它,但必须在posts控制器中添加类似@users=user.find_的内容 我的问题是,在不修改控制器的情况下,只将关系添加到模型中,您仍然可以像quesiton中的教程那样使用“post.user.name”之类的内容 我是一个noob-但是这是否与用户表没有用户id有关?那么post的表怎么能让它链接到用户表

遵循本教程“”,我无法克服主题中的错误

它发生在我根据tuorial修改“app/views/posts/show.html.erb”时

现在,我已经用另一种方法(另一个教程)实现了它,但必须在posts控制器中添加类似@users=user.find_的内容

我的问题是,在不修改控制器的情况下,只将关系添加到模型中,您仍然可以像quesiton中的教程那样使用“post.user.name”之类的内容

我是一个noob-但是这是否与用户表没有用户id有关?那么post的表怎么能让它链接到用户表呢

任何人都能完成这个教程并真正开始工作吗?这与我使用RUBY-1.8.6-27而不是最新的2.x.x有关吗


我不知道。我需要对此进行分类,因为它将在我想要制作的应用程序中大量使用。

当您使用此命令创建迁移时:

ruby script/generate migration add_user_id_to_post user_id:integer
迁移脚本知道从您的迁移名到
add
a
user\u id
Post
模型。
user\u id:integer
是用于定义整数用户id的标准ActiveRecord::迁移代码

您将看到使用以下代码生成的迁移:

class AddUserIdToPost < ActiveRecord::Migration
  def self.up
    add_column :posts, :user_id, :integer
  end

  def self.down
    remove_column :posts, :user_id
  end
end
检查数据库以查看Post表中是否存在用户id。否则,post.user.name将不起作用

是的-完成了所有这些

我得到了一个完全正常工作的不同示例-我想这可能与用户表没有实际的名为“id”的列有关。。。就像我工作的那个


按照这个例子(教程)-它不起作用。你是说应该?与ruby或rails版本有关吗?显然,我正在使用Windows-Ruby v 1.8.6和rails 2.3.4-以及数据库的mysql插件。

我使用与您相同的设置,它对我来说运行良好。如果您的迁移中有用户id,那么它将起作用。默认情况下,Rails会为您添加一个id列作为主键。关闭它的唯一方法是使用create_table方法:id=>false?
rake db:migrate