我对rails相当陌生,并且在我的Champion模型上通过belongs_to建立了5个关联,这些关联连接到具有has_one关联回Champion模型的Ability模型。
这 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 显示“q”、“w”、“e”、“r”和“passive”而没有“_id”,并显示整个能力记录?现在它只显示包含 id 的实际数据库字段,但不显示我想要的记录。任何帮助表示赞赏!