我想知道在rails 4.0上的ruby中实现我的情况的正确方法。
假设我有2个名为 House 和订单的模型。
我的订单表应该有两列从和到都引用一个房屋模型。
在这种情况下,这两个模型之间的关系应该是什么? 注意:我不需要对房屋模型中的订单模型进行任何引用。
我想在我的订单表
中有这样的东西t.references :house, as:from (this should create a column named from and should be of type integer, index of house table
t.references :house, as:to (this should create a column named to and should be of type integer, index of house table
我想在订单模型中使用这种类型的关系,因为我想在我的订单中采用类似
的房屋字段<%= form_for @order do |f| %>
... # order fields
<%= f.fields_for :house(from) do |i| %>
... # your house forms
<% end %>
<%= f.fields_for :house(to) do |i| %>
... # your house forms
<% end %>
...
<% end %>
在rails中有没有具体的方法?
P.S:我已在此处阅读此帖,但我认为这并不能完全解决我的问题。 Adding a Model Reference to existing Rails model
答案 0 :(得分:0)
添加此答案以防万一Surya的代码不起作用 - 我习惯于必须指定foreign_key:
class Order < ActiveRecord::Base
belongs_to :from_house, :class_name => "House", :foreign_key => "from_id"
belongs_to :to_house, :class_name => "House", :foreign_key => "to_id"
end
确保Order
上有两个属性 - 一个属于from_id
,另一个属于to_id
。从现在开始,您可以拨打order.from_house
和order.to_house
。