Ruby on rails 3 在Rails中具有自引用和多对一映射的活动记录关联方面需要帮助吗

Ruby on rails 3 在Rails中具有自引用和多对一映射的活动记录关联方面需要帮助吗,ruby-on-rails-3,activerecord,associations,polymorphic-associations,Ruby On Rails 3,Activerecord,Associations,Polymorphic Associations,要求: 我正在为本地校园创建一个类似twitter的web应用程序,用户可以像twitter那样通过140个字符的服务共享反馈 对于每个反馈,可以有多个反馈响应。这些回复与twitter回复类似,twitter回复也是140个字符的回复,就像tweet一样 基本上,输入反馈或响应的屏幕与相同的功能元素相同。示例如下:- 这是一个演示反馈-用户1 这是对反馈的响应-用户2 我正在使用rails进行开发,这就是我的反馈模型 class Feedback < ActiveRecord::Bas

要求:
我正在为本地校园创建一个类似twitter的web应用程序,用户可以像twitter那样通过140个字符的服务共享反馈

对于每个反馈,可以有多个反馈响应。这些回复与twitter回复类似,twitter回复也是140个字符的回复,就像tweet一样

基本上,输入反馈或响应的屏幕与相同的功能元素相同。
示例如下:-

这是一个演示反馈-用户1
这是对反馈的响应-用户2


我正在使用rails进行开发,这就是我的反馈模型

class Feedback < ActiveRecord::Base
  attr_accessible :title     

end
类反馈
我在数据库中的表结构如下:-
反馈表

id,整数,主键
标题,varchar(255)

这就是我希望如何管理对反馈的响应

一个名为“反馈\u响应”的单独表格,其结构如下:

反馈id(int)[这是父反馈id]
响应id (int)[这是对父反馈id的响应]

我的问题 我知道这里需要多对一关系的自引用映射。但是,我不清楚如何从用于创建反馈的同一视图创建响应。其次,响应是对系统的另一个反馈,因此,除非创建响应并生成其id,否则不会使用所需的映射填充反馈响应表。因此,在本例中,我对如何在一个单独的表上创建响应和管理它们的映射感到非常困惑。我开始用这个应用程序学习rails

类反馈class Feedback < ActiveRecord::Base
  attr_accessible :title 
  validates :title, :length => { :maximum => 140 }
  has_many_and_belong_to :responses   
end

class Response < ActiveRecord::Base
  has_many_and_belong_to :feedbacks      
end
可访问属性:标题 验证:title,:length=>{:max=>140} 是否有多个和属于:响应 结束 类响应 要从反馈对象获取响应,请使用
@feedback.responses
对于响应对象
@response.feedbacks

这种关系很容易维持。如果需要,您可以添加中间表。

我不太了解您的设计,但看起来您的主要实体(相当于一条推特)是“反馈”,每个“反馈”可以有许多“响应”(如评论)。我不清楚的是,“回应”本身是否可以是一种“反馈”,但我现在假设不是。所以,根据这个描述,你的设计说反馈有很多反应。我发现“反馈-回应”表与此无关,因为它听起来像是一个回应与一个且只有一个反馈相关。所以,放下桌子

所以,我会这样写:

# table feedbacks
# id: Integer
# title: Varchar 140
class Feedback < ActiveRecord::Base
  has_many :responses
end

# table responses
# id: Integer
# feedback_id: Integer
class Response < ActiveRecord::Base
  belongs_to :feedback
end
#表反馈
#id:整数
#标题:Varchar 140
类反馈
不过,如果您希望处理的反馈不是对另一个反馈的响应,则可以使用继承作为解决方案:

# additionally feedback_id: Integer to the feebacks table
class Feedback < ActiveRecord::Base
  has_many :responses
end

class Response < Feedback
  belongs_to :feedback
end
#另外反馈_id:feebacks表的整数
类反馈
只要有两个可区分的模型,视图生成就会自动变得容易