"Member" belongs_to-6ren">
gpt4 book ai didi

ruby-on-rails - Rails 模型中的自定义非数据库属性未返回到 jquery 回调

转载 作者:行者123 更新时间:2023-12-01 02:48:47 25 4
gpt4 key购买 nike

我有以下模型

class Game < ActiveRecord::Base

# Associations
belongs_to :black_member, :class_name => "Member"
belongs_to :white_member, :class_name => "Member"
belongs_to :current_move_member, :class_name => "Member"
belongs_to :game_requests, :foreign_key => "game_request_id"

#Validations
#attr_accessible :opponent_nickname, :current_member_id

# Instance methods
attr_accessor :opponent_nickname, :current_member_id

def setup
if self.white_member_id == self.current_member_id
self.opponent_nickname = "test"
end
end

end

我的 Controller :

# POST /games/setup.json 
def setup

@game = Game.find(params[:id])
@game.current_member_id = currentmember.id
@game.setup

respond_to do |format|
format.json { render :json => @game }
end

end

我的 js 函数向 Controller 发送和接收 ajax 请求:

// Setup all initial game details on game startup

SITE.Game.LoadGameDetails = function() {

gameId = $(".edit_game").attr("id").split('_')[2];

$.post('/games/setup', {id: gameId},
function(result) {
console.log("opp = " + result.opponent_nickname);
}
,"json");
}

出于某种原因,我的 ajax 调用似乎只是返回由 activeRecord 自动生成的游戏属性。它似乎没有发回“opponent_nickname”。

有什么想法吗?

谢谢

最佳答案

试试这个:

render :json => @game.to_json(:methods => :opponent_nickname)

默认的json序列化器来自ActiveRecord,您需要将新属性添加到对象的json表示中。

关于ruby-on-rails - Rails 模型中的自定义非数据库属性未返回到 jquery 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5347113/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com