0

刚开始玩 Ruby(没有 IT 背景),直到现在进展顺利。但是自从两天以来,我被困住了,不明白出了什么问题……非常感谢您帮助我解决了这个问题!情况如下所述:

我创建了一个包含以下列的currencymastercurrmasdesc:string表: , currmasiso:string。我创建了一个包含以下列的货币汇率currratemasteridd:integer表: , currratemasteridc:integer, currraterate:decimal, currratedate:date。其中,该列currratemasteridd反映了主要货币,而currratemasteridc反映了转换后的货币以生成组合的货币对。

models/currencymaster.rb 看起来像这样:

class Currencymaster < ActiveRecord::Base
  has_many :CurrencyRateDom, :class_name => "Currencyrate", :foreign_key => "CurrRateMasterIDD" 
  has_many :CurrencyRateConv, :class_name => "Currencrate", :foreign_key => "CurrRateMasterIDC"
end

models/currencyrate.rb 看起来像这样:

class Currencyrate < ActiveRecord::Base
  belongs_to :CurrencyDominant, :class_name => 'Currencymaster' , :foreign_key => "CurrRateMasterIDD", :validate => true
  belongs_to :CurrencyConverted, :class_name => 'Currencymaster' , :foreign_key => "CurrRateMasterIDC", :validate => true
end

controllers/currencyrates_controller.rb 看起来像这样:

class CurrencyratesController < ApplicationController
  # GET /currencyrates
  # GET /currencyrates.json
  def index
    @currencyrates = Currencyrate.all

    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @currencyrates }
    end
  end

  # GET /currencyrates/1
  # GET /currencyrates/1.json
  def show
    @currencyrate = Currencyrate.find(params[:id])

    respond_to do |format|
      format.html # show.html.erb
      format.json { render json: @currencyrate }
    end
  end
end

现在是我的问题,我无法在 view/currencyrates/index.html.erb 中显示相关的currencymaster.currmasiso而不是存储在表 currencyrate中的currratemasteridd& 。currratemasteridc

我希望这个问题中的所有信息都可用,否则请在需要其他信息时告诉我。再次感谢!

4

1 回答 1

0

为什么不遵守约定?

您应该创建一个CurrencyMaster类,不要在列名中重复“currmas”或“currrate”。不要覆盖外键......你的代码应该是这样的:

class CurrencyMaster < ActiveRecord::Base
  has_many :currency_rate_doms
  has_many :currency_rate_convs
end

在你的其他课程中也是如此。Rails 使用“约定优于配置原则。之后会更好。

欢迎来到精彩的 ruby​​/rails 世界。

于 2012-07-24T13:07:52.610 回答