Ruby on rails 模型中的条件问题

Ruby on rails 模型中的条件问题,ruby-on-rails,ruby-on-rails-3,postgresql,pg,Ruby On Rails,Ruby On Rails 3,Postgresql,Pg,我正在制作个人理财应用程序。我有两个模型:账户和交易。 交易有属于:账户和账户有有多个:交易 当我在db(postgres)中有account\u id列时,一切正常。但是我必须将account\u id重命名为from\u account\u id并将另一列添加到\u account\u id。这样我就可以在账户中添加支出,在账户中添加收入。此外,账户之间的转账也是必要的(从账户id到账户id的和都有一些值) 因此,我将视图中的字段:account\u id重命名为:from\u accoun

我正在制作个人理财应用程序。我有两个模型:
账户
交易
交易
属于:账户
账户
有多个:交易

当我在db(postgres)中有
account\u id
列时,一切正常。但是我必须将
account\u id
重命名为
from\u account\u id
并将另一列
添加到\u account\u id
。这样我就可以在
账户
中添加支出,在
账户
中添加收入。此外,账户之间的转账也是必要的(从账户id到账户id的
都有一些值)

因此,我将视图中的字段
:account\u id
重命名为
:from\u account\u id
,并将
:添加到\u account\u id
字段。但是,当我在db中将
account\u id
重命名为
from\u account\u id
时,出现了这个错误

ActiveRecord::StatementInvalid in PagesController#index

PG::Error: ERROR:  column transactions.account_id does not exist
LINE 1: ...s".* FROM "transactions" INNER JOIN "accounts" ON "transacti...
                                                             ^
: SELECT "transactions".* FROM "transactions" INNER JOIN "accounts" ON
  "transactions"."account_id" = "accounts"."id" WHERE "accounts"."user_id" = 17 ORDER BY
  transactions.date DESC
我的
页面#索引
控制器是:

class PagesController < ApplicationController

  def index
    if user_signed_in?
      @accounts = current_user.accounts.all
      @transaction = current_user.transactions.build
      @transactions = current_user.transactions.all
      @categories = current_user.categories.all
    end
  end

end
class PagesController
我认为Rails正试图在
交易
表中查找
账户id
列,因为
交易
属于:账户
。但是我需要
:account
to
from
的两个列,如您所见。所以,也许我需要在
交易
模型中将这个
属于
条件,但我不知道如何更改


谢谢你的建议

您必须重命名
账户中的
关系。类似于以下的方法将起作用:


有多个:事务,:foreign\u key=>“from\u account\u id”

您必须在
事务
类中定义两个
属于
的关系,表
事务
中的每列一个:

class Transaction < ActiveRecord::Base    
  belongs_to :from_account, :class_name => 'Account', :foreign_key => 'from_account_id'
  belongs_to :to_account, :class_name => 'Account', :foreign_key => 'to_account_id'

  # ...
end
类事务'account',:foreign\u key=>'from\u account\u id'
属于\u to:to\u account,:class\u name=>'account',:foreign\u key=>'to\u account\u id'
# ...
结束
请参见中的选项