Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 按照在Postgresql和RubyonRails中创建的连接记录数据的顺序显示连接记录数据_Ruby On Rails_Postgresql_Postgresql 9.1 - Fatal编程技术网

Ruby on rails 按照在Postgresql和RubyonRails中创建的连接记录数据的顺序显示连接记录数据

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

我在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) 
    
    它向我展示了以下结果:

    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,这样它就不能正常工作了?你能告诉我为什么需要这种类型的设置吗?它更类似于银行对账单中的借项和贷项。费用可能类似于贷记,付款可能类似于借记。现在我们必须打印一个类似于结构的银行对账单。嗯,好吧,那么你基本上是在尝试按时间顺序创建一个包含费用和借项的银行对账单?可能值得为此做一个类方法-如果你给我一个更新,我会看看我能想出什么。它再次显示付款第一次