我无法将模型实例分配给另一个模型的引用属性。相关代码如下:
module Blog::Models
class Post < Base; belongs_to :user, dependent: :destroy end
class User < Base; has_many :posts end
...
class BasicFields < V 1.0
def self.up
create_table User.table_name do |t|
...
end
create_table Post.table_name do |t|
...
t.references :user
end
end
...
end
end
module Blog::Controllers
...
class PostEditN
...
def post(post_num)
@post = Post.find(post_num)
@user = User.find(@input.user)
...
@post.user = @user # Error thrown: NameError at /post/edit/1 uninitialized constant User
# @post.user_id = @user.id << This is my currently working solution
@post.save
redirect PostN, post_num
end
end
...
end
...
当我在控制台模式下使用 Camping 分配某些东西时@post.user
,它是成功的,但我似乎无法在控制器中完成相同的行为。我通过简单地将 分配给实例@user.id
的user_id
属性来做到这一点。Post
但是,我想弄清楚为什么替代方法在 Camping 控制台中有效,而不是在我只是运行网络服务器时有效。