私はレールにかなり慣れていないので、Champion モデルへの has_one 関連付けを持つ Ability モデルに接続する、Champion モデルの belongs_to を介して作成された 5 つの関連付けがあります。
これら 5 つの関連付けは、関連付け名と「_id」に一致する外部キーを使用します。ページをレンダリングすると、「_id」の値が整数として表示されますが、それらを実際のレコードとして表示したいと考えています。したがって、整数を表示するだけでなく、すべてのフィールドを含む完全な能力レコードを表示します。
ここに私の Champion.rb モデルがあります:
class Champion < ActiveRecord::Base
attr_accessible :q_id,
:w_id,
:e_id,
:r_id,
:passive_id
belongs_to :q, :class_name => "Ability", :foreign_key => "q_id"
belongs_to :w, :class_name => "Ability", :foreign_key => "w_id"
belongs_to :e, :class_name => "Ability", :foreign_key => "e_id"
belongs_to :r, :class_name => "Ability", :foreign_key => "r_id"
belongs_to :passive, :class_name => "Ability", :foreign_key => "passive_id"
end
そして、ability.rb モデル:
class Ability < ActiveRecord::Base
has_one :champion
end
モデルを表示するコントローラー:
class ApplicationController < ActionController::Base
protect_from_forgery
def show_all
load_models
respond_to do |format|
format.json { render :json => { "champions" => @champions } }
end
end
protected
def load_models
@champions = Champion.all
end
end
では、JSON が "_id" なしで "q"、"w"、"e"、"r"、および "passive" を表示し、Ability レコード全体を表示するように設定するにはどうすればよいでしょうか? 現在、ID を含む実際のデータベース フィールドのみが表示されますが、必要なレコードは表示されません。どんな助けでも大歓迎です!