Ruby on rails 我们可以在rails中传递额外的参数和渲染方法吗
控制器方法:Ruby on rails 我们可以在rails中传递额外的参数和渲染方法吗,ruby-on-rails,ruby-on-rails-3.1,Ruby On Rails,Ruby On Rails 3.1,控制器方法: def add @project = Project.find(1) render xml: @project #wish to pass one more variable like this here end ajax调用: endpoint = ROOT_PATH + '/projects/add/'+data_type; $.ajax({ url : endpoint, type : "get",
def add
@project = Project.find(1)
render xml: @project #wish to pass one more variable like this here
end
ajax调用:
endpoint = ROOT_PATH + '/projects/add/'+data_type;
$.ajax({
url : endpoint,
type : "get",
dataType : "xml",
success : function(xml) {
id = $(xml).find('id').text();
title = $(xml).find('title').text();
// wish to display the sent additional parameter here.
}
});
我能够在ajax调用中获取项目实例参数“id”和“title”。但是我希望在@project中再发送一个参数,并希望在ajax调用中使用此参数的值。谁能帮我一下吗。谢谢 方法之一可以是:
render xml: @patient.as_json.merge({:YOUR_KEY => YOUR_VALUE})
如果要发送请求的参数或nil@patient,则:
requested_params = params.except(:controller, :action)
render xml: @patient.present? ? @patient.as_json.merge(requested_params) : requested_params`
…但是如果@patient=1…此方法失败,错误为undefinedmethodError(未定义方法'merge'for 1:Fixnum)…在这种情况下可以做什么?我认为
@patient
是一个activerecord对象。如果您认为患者是不同的,那么请澄清:)如果requestOK='3'项目=1结束。。。我只是把一个随机数传给project。。。。因为渲染需要一些东西。。。。否则,如果项目为nil,ajax调用将不会成功。。。。。那么如果atproject=1……会发生什么?它不会合并附加参数吗?即使项目值为1,我也要合并它。如果确实需要使用项目id并返回请求的参数,请让我知道@project
值不应为1。合并(项目id:project\u id)