【问题标题】:Rails - belongs_to, has_manyRails - belongs_to, has_many
【发布时间】:2010-11-11 06:15:53
【问题描述】:

我正在尝试在 Rails 中建立模型关系,并且可以使用您的帮助,因为它不起作用:0

class User < ActiveRecord::Base
  has_many :request_threads
end

class RequestThread < ActiveRecord::Base
  belongs_to :user, :foreign_key => :creator_id
end

就架构而言,request_threads 表有 creator_id 而不是 user_id,也许这就是问题所在?

我希望能够做到:

@user.request_threads

但这不起作用,错误。想法?

更新

错误消息:2010 年 11 月 10 日星期三 22:21:41 -0800 为 127.0.0.1“开始 POST”/request_threads RequestThreadsController#create as JS 处理 参数:{"request_thread"=>{"request_type_id"=>"1", "message"=>"blahdiado"}, "authenticity_token"=>"o9ibF/m8Vw4Uce5u1n3R+atD2/XVqnZcBVOdXimAZEA=", "utf8"=>" ✓", "收件人"=>["4", "3"]} 用户负载 (0.7ms) SELECT "users".* FROM "users" WHERE ("users"."id" = 2) LIMIT 1 CACHE (0.0ms) SELECT "users".* FROM "users" WHERE ("users"."id" = 2) LIMIT 1 63ms 完成

NoMethodError (未定义方法user_id=' for #<RequestThread:0x1058df0d0>): app/controllers/request_threads_controller.rb:50:increate' app/middleware/flash_session_cookie_middleware.rb:14:in `call' "

【问题讨论】:

  • “这不起作用”——是否有错误消息?
  • @rwilliams,你想看什么架构,很大
  • 你不需要。当我看到 creator_id 时,我没有完全阅读我刚刚感到困惑的问题

标签: ruby-on-rails ruby-on-rails-3


【解决方案1】:

试试这个。

class User < ActiveRecord::Base
  has_many :request_threads, :foreign_key => :creator_id
end

class RequestThread < ActiveRecord::Base
  belongs_to :user
end

控制器看起来不错。好的,在您的 RequestThread 模型中尝试一下。

alias_attribute :user_id, :creator_id

【讨论】:

  • 谢谢。试过了,同样的错误“NoMethodError(#<0x105875400>
【解决方案2】:

这应该适合你。

class User < ActiveRecord::Base
  has_many :request_threads, :foreign_key => :creator_id
end

class RequestThread < ActiveRecord::Base
  belongs_to :user, :foreign_key => :creator_id
end

【讨论】:

    猜你喜欢
    • 2011-12-20
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多