Ruby on rails 按照在Postgresql和RubyonRails中创建的连接记录数据的顺序显示连接记录数据
我在postgresql数据库中有三个表:Ruby on rails 按照在Postgresql和RubyonRails中创建的连接记录数据的顺序显示连接记录数据,ruby-on-rails,postgresql,postgresql-9.1,Ruby On Rails,Postgresql,Postgresql 9.1,我在postgresql数据库中有三个表: 成员 身份证 名字 姓 创建于 付款(如借记卡) 身份证 会员身份证 数量 创建于 类型 费用(如信贷) 身份证 会员身份证 数量 创建于 类型 我想用一个视图向他们展示,比如账单: 我使用了以下查询: select * from members as t1 left join payments as t2 on (t1.id=t2.member_id) left join fees as t3 on (t1.id=t3.member_id
- 身份证
- 名字
- 姓
- 创建于
- 身份证
- 会员身份证
- 数量
- 创建于
- 类型
- 身份证
- 会员身份证
- 数量
- 创建于
- 类型
select * from members as t1 left join payments as t2 on (t1.id=t2.member_id) left join fees as t3 on (t1.id=t3.member_id)
它向我展示了以下结果:
id | Amount | created_at | Type
1 100 25-12-2013 Fee
2 100 29-12-2013 Fee
3 100 25-12-2013 Payment
4 100 23-12-2013 Payment
但问题是,它显示了第一个费用记录,然后付款,而我需要它应该是由创建的,它应该如下所示:
id | Amount | created_at | Type
1 100 23-12-2013 Payment
2 100 25-12-2013 Fee
3 100 25-12-2013 Payment
4 100 29-12-2013 Fee
以下是模型的详细信息:
class Fee < ActiveRecord::Base
# Setup accessible (or protected) attributes for your model
attr_accessible :member_id,:fee_type,:amount,:reason,:details,:date
# Setup relations with relative models
belongs_to :member
# Validates rule here
validates_numericality_of :member_id,:fee_type,:amount
validates :reason,
:format => {:with => /^[-a-zA-Z0-9_ ]+$/ },
:length => {:maximum => 255},
:presence =>true
validates :details,
:format => {:with => /^[-a-zA-Z0-9_ ]+$/ },
:length => {:maximum => 255},
:allow_blank =>true
validates :amount,
:presence => true
validates :member_id,
:presence => true
validates :date,
:presence => true
# Search start here
self.per_page = 10
end
class Payment < ActiveRecord::Base
# Setup accessible (or protected) attributes for your model
attr_accessible :member_id,:payment_category_id,:payment_type_id,:payment_date,:amount,:notes,:is_send_email,:last_sent,:date_deposite
# Setup relations with relative models
belongs_to :payment_type
belongs_to :payment_category
belongs_to :member
# Validates rule here
validates_numericality_of :member_id,:payment_category_id,:payment_type_id,:amount
validates :notes,
:format => {:with => /^[-a-zA-Z0-9_ ]+$/ },
:length => {:maximum => 255},
:allow_blank =>true
validates :amount,
:presence => true,
:length => {:maximum => 15}
validates :member_id,
:presence => true
validates :payment_date,
:presence => true
# Pagiination start here
self.per_page = 10
end
class Member < ActiveRecord::Base
has_many :payment, dependent: :destroy, -> { order :created_at }
has_many :fee, dependent: :destroy, -> { order :created_at }
has_many :events, :through => :participants
end
学费{:with=>/^[-a-zA-Z0-9_770;]+$/},
:length=>{:max=>255},
:presence=>true
验证:详细信息,
:format=>{:with=>/^[-a-zA-Z0-9_770;]+$/},
:length=>{:max=>255},
:allow_blank=>true
验证:金额,
:presence=>true
验证:成员id,
:presence=>true
验证:日期,
:presence=>true
#搜索从这里开始
self.per_page=10
结束
类付款{:with=>/^[-a-zA-Z0-9_770;]+$/},
:length=>{:max=>255},
:allow_blank=>true
验证:金额,
:presence=>true,
:length=>{:max=>15}
验证:成员id,
:presence=>true
验证:付款日期,
:presence=>true
#分页从这里开始
self.per_page=10
结束
类成员{order:created_at}
是否有_many:fee,dependent::destroy,->{order:created_at}
有许多:事件,:至=>:参与者
结束
如果我是你,我会这样使用:
#app/models/member.rb
Class Member < ActiveRecord::Base
has_many :payments, -> { order :created_at }
has_many :fees, -> { order :created_at }
end
#app/models/payment.rb
Class Payment < ActiveRecord::Base
belongs_to :member
end
#app/models/fee.rb
Class Fee < ActiveRecord::Base
belongs_to :member
end
@member = Member.find 1
@member.payments #-> should be ordered by created_at
如果我是你,我会这样使用:
#app/models/member.rb
Class Member < ActiveRecord::Base
has_many :payments, -> { order :created_at }
has_many :fees, -> { order :created_at }
end
#app/models/payment.rb
Class Payment < ActiveRecord::Base
belongs_to :member
end
#app/models/fee.rb
Class Fee < ActiveRecord::Base
belongs_to :member
end
@member = Member.find 1
@member.payments #-> should be ordered by created_at
如果我是你,我会这样使用:
#app/models/member.rb
Class Member < ActiveRecord::Base
has_many :payments, -> { order :created_at }
has_many :fees, -> { order :created_at }
end
#app/models/payment.rb
Class Payment < ActiveRecord::Base
belongs_to :member
end
#app/models/fee.rb
Class Fee < ActiveRecord::Base
belongs_to :member
end
@member = Member.find 1
@member.payments #-> should be ordered by created_at
如果我是你,我会这样使用:
#app/models/member.rb
Class Member < ActiveRecord::Base
has_many :payments, -> { order :created_at }
has_many :fees, -> { order :created_at }
end
#app/models/payment.rb
Class Payment < ActiveRecord::Base
belongs_to :member
end
#app/models/fee.rb
Class Fee < ActiveRecord::Base
belongs_to :member
end
@member = Member.find 1
@member.payments #-> should be ordered by created_at
根据要提取的记录数量,您还可以在从数据库中提取记录后在ruby中进行排序,例如
transactions = member.payments + member.fees
transactions = transactions.flatten.sort_by(&:created_at)
根据要提取的记录数量,您还可以在从数据库中提取记录后在ruby中进行排序,例如
transactions = member.payments + member.fees
transactions = transactions.flatten.sort_by(&:created_at)
根据要提取的记录数量,您还可以在从数据库中提取记录后在ruby中进行排序,例如
transactions = member.payments + member.fees
transactions = transactions.flatten.sort_by(&:created_at)
根据要提取的记录数量,您还可以在从数据库中提取记录后在ruby中进行排序,例如
transactions = member.payments + member.fees
transactions = transactions.flatten.sort_by(&:created_at)
ORDER BY created_at
对您不起作用吗?您能否扩展到“它不起作用”…例如,请给我们一个使用ORDER时的外观示例。。。有时,如果你解释事情如何“不起作用”,它们可以帮助我们找到更好的解决方案:)ORDER BY created_at
对你不起作用?你能扩展到“它不起作用”…例如,给我们一个例子,说明你使用ORDER时的情况。。。有时,如果你解释事情如何“不起作用”,它们可以帮助我们找到更好的解决方案:)ORDER BY created_at
对你不起作用?你能扩展到“它不起作用”…例如,给我们一个例子,说明你使用ORDER时的情况。。。有时,如果你解释事情如何“不起作用”,它们可以帮助我们找到更好的解决方案:)ORDER BY created_at
对你不起作用?你能扩展到“它不起作用”…例如,给我们一个例子,说明你使用ORDER时的情况。。。有时,如果你解释事情如何“不起作用”,他们可以帮助我们找到更好的解决方案,确实有效:)它再次显示付款,然后是费用,但我需要按日期订购。示例费用记录1和费用记录2创建于2013年和2015年。2012年和2014年创建了付款记录1和付款记录2。然后订单必须是->付款记录1>订单记录1>付款记录2,然后是费用记录2Hmm,这样它就不能正常工作了?你能告诉我为什么需要这种类型的设置吗?它更类似于银行对账单中的借项和贷项。费用可能类似于贷记,付款可能类似于借记。现在我们必须打印一个类似于结构的银行对账单。嗯,好吧,那么你基本上是在尝试创建一个按时间顺序排列的费用和借记的银行对账单?可能值得为此做一个类方法-如果你给我一个更新,我会看看我能想出什么。它再次显示付款,然后是费用,但我需要按日期排序。示例费用记录1和费用记录2创建于2013年和2015年。2012年和2014年创建了付款记录1和付款记录2。然后订单必须是->付款记录1>订单记录1>付款记录2,然后是费用记录2Hmm,这样它就不能正常工作了?你能告诉我为什么需要这种类型的设置吗?它更类似于银行对账单中的借项和贷项。费用可能类似于贷记,付款可能类似于借记。现在我们必须打印一个类似于结构的银行对账单。嗯,好吧,那么你基本上是在尝试按时间顺序创建一个包含费用和借项的银行对账单?可能值得为此做一个类方法-如果你给我一个更新,我会看看我能想出什么。它再次显示付款第一次