![](/img/trans.png)
[英]Keep formatting from being stripped from JSON in Angular from Firebase
[英]Prevent datepicker values from being stripped from params
我正在使用bootstrap-datepicker.js( http://www.eyecon.ro/bootstrap-datepicker/ )在Rails视图中设置表的日期范围。
Calls.html.erb
<form class="form-horizontal daterange">
<input type="text" data-date-format="yyyymmdd" id="start-date" name="start">
<span class="add-on">-</span>
<input type="text" data-date-format="yyyymmdd" id="end-date" name="end">
<button type="submit" class="btn submit-date">Submit</button>
</form>
<script type="text/javascript">
$(document).ready(function() {
$('#start-date').datepicker({
format: 'yyyy-mm-dd'
});
$('#end-date').datepicker({
format: 'yyyy-mm-dd'
});
});
</script>
它将params [:start]和params [:end]传递到URL中,该URL用于设置Twilio API调用的日期范围。
例如 / twilio / calls /?start = 2013-03-01&end = 2014-01-06
自从我创建了以下路由来对api调用进行分页:
routes.rb
match 'twilio/calls' => 'twilio#calls', :as => :twilio_page
match 'twilio/calls/:page_id' => 'twilio#calls', :as => :twilio_page
每当我进入结果的下一页时,它就会删除日期范围值。
如何保存:start /:end参数?
twilio_controller.rb 更新-添加了开始/结束数据
if params[:start].nil?
@start_date = DateTime.parse((Date.today - 7).to_s).strftime("%Y-%m-%d")
@end_date = DateTime.parse((Date.today - 1).to_s).strftime("%Y-%m-%d")
else
@start_date = params[:start]
@end_date = params[:end]
end
@user = current_user
@account_sid = @user.twilio_account_sid
@auth_token = @user.twilio_auth_token
@page_size = 5
@page = params[:page_id] || 0
@sub_account_client = Twilio::REST::Client.new(@account_sid, @auth_token)
@subaccount = @sub_account_client.account
@recordings = @subaccount.recordings
@recordingslist = @recordings.list({:page_size => @page_size, :page => @page, :"date_created<" => @end_date, :"date_created>" => @start_date})
根据规范的Rails指南 :
参数还将包括查询字符串中的所有参数。
因此,您要消除第一条路线,该路线不允许任何参数:
# config/routes.rb
match 'twilio/calls/:page_id' => 'twilio#calls', :as => :twilio_page
为了说明这一点,假设您正在尝试访问/twilio/calls/1?start=2013-03-01&end=2014-01-06
。 查询字符串实际上是经过解析的,因此您不仅可以访问page_id
参数,而且还可以访问start
和end
。
如果要维护默认路由,例如twilio/calls
,则可以声明路由重定向 ,如下所示:
# config/routes.rb
get '/twilio/calls', to: redirect('/twilio/calls/1')
这将自动将对/twilio/calls
所有请求重新路由到/twilio/calls/1
。
更新 :
为了澄清,URL查询参数被参数化并作为params
哈希的成员提供给相应的控制器操作。 因此,给定路径/twilio/calls/1?start=2013-03-01&end=2014-01-06
,您将可以访问params[:page_id]
, params[:start]
和params[:end]
。 您需要在操作中将后两个传递给API调用:
@recordingslist = @recordings.list({:page_size => @page_size,
:page => @page,
:"date_created<" => params[:start],
:"date_created>" => params[:end]
})
更新 :
为了在页面视图之间保留查询参数,可以将传递给twilio_page_path
的参数与查询字符串连接起来:
twilio_page_path((@page.to_i + 1).to_s + "?start=" + params[:start] + "&end=" + params[:end]) %>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.