我正在使用rails和jquery。我有一个名为属性的选择框。我想在属性更改时自动填充输入字段。但是,如果我对rails函数进行ajax调用,它如何重定向并返回我想要的值?代码如下所示:
function fnGetValue() {
return $.get(
"/get_value",
{attribute: attr}
);
}
$(document).ready(function() {
$("#attribute").change(function(event) {
fnGetValue().done(function(result) {
$("#value").val(result);
});
});
});
def get_value
ret = get_from_db
return ret
#redirect_to :back
end
答案 0 :(得分:1)
问题在于您的ruby代码。
return ret
不会将ret
值发送回您的浏览器。
为此,您应该使用render
。
def get_value
ret = get_from_db
render json: {data:ret}
end
Json是在Javascript和任何其他技术之间共享数据的方式
它可以是数组([val1, val2]
),也可以是字典({key:value, key2:value2}
)
因此,在.done
Javascript方法中result
应该是数组或字典。
我相信get_from_db
会返回数组,字典甚至是字符串和整数
因此,为了确保您的Javascript方法始终获得字典,我们将其封装到{data:ret}
。
然后在您的Javascript中,执行result.data
将获得您正在寻找的价值。