一个ajax和rails交互的例子

首先,这里用了一个,query信息解析的包,如下
[url]https://github.com/rapportive-oss/jquery-parsequery[/url]
主要做如下:

$.parseQuery({query: "id[]=1&id[]=2",
array_keys: /^ids$/,
decode: function (input, context) {
input = this.default_decode(input);
if (context === null) {
return input.replace(/\[\]$/, 's')
} else if (context === "ids") {
input = parseInt(input);
if (isNaN(input)) {
throw URIError("id was not a number");
}
}
return input;
}
}) == {'ids':[1, 2]}


例子,正式触发


// If direct link to property query is used send to Rails
try {
var hash = location.hash.substr(1, location.hash.length);
if (location.pathname == '/properties' && hash.length > 0) {
$.parseQuery.separator = ',';
var data = $.parseQuery(hash);
$.ajax({
url : '/properties',
type : 'GET',
data : data,
dataType : 'script'
});
}
} catch(err) { }

服务器端


# app/controllers/application_controller.rb
helper_method :params_to_url

def params_to_url
rails_params = [
'action',
'controller',
'commit', '_',
'authenticity_token',
'_method',
'format',
'utf8']
params_copy = params.dup
params_copy.map {
|k,v| "#{k}=#{URI.escape(v.to_s)}" if !v.empty? && !rails_params.include?(k)
}.compact.join(',')
end




# app/views/properties/index.js.erb
<%- if @properties.size > 0 -%>
# For example, update DIV with found properties
window.location.hash = '<%= params_to_url %>';
<%- end -%>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值