我是一个完整的菜鸟,建立我的第一个rails应用程序.我使用youtube上的apneadiving教程成功实现了Google-maps-for-rails V2:http://www.youtube.com/watch?v = R0l-7en3dUw&feature = youtu.be
我的问题是,对于我的每张地图,我只显示一个标记,当地图加载时,它会调整为完全缩放.
搜索周围,似乎有很多早期版本的Gmaps4rails解决方案,但对于V2,并通过javascript创建地图,我似乎无法找到一个有效的解决方案.
作为参考,我的代码如下:
视图:
<script type="text/javascript">
handler = Gmaps.build('Google');
handler.buildMap({ provider: {}, internal: {id: 'map'}}, function(){
markers = handler.addMarkers(<%=raw @hash.to_json %>);
handler.bounds.extendWith(markers);
handler.fitMapToBounds();
}); </script>
Run Code Online (Sandbox Code Playgroud)
控制器:
def show
@pins = Pin.find(params[:id])
@hash = Gmaps4rails.build_markers(@pins) do |pin, marker|
marker.lat pin.latitude
marker.lng pin.longitude
end
end
Run Code Online (Sandbox Code Playgroud)
我试图通过控制台使用:gmap.setzoom(12)进行更改,正如某些帖子所建议的那样,但是没有任何运气.
任何帮助深表感谢
对我有用的答案:将视图更改为:
<script type="text/javascript">
handler = Gmaps.build('Google');
handler.buildMap({ provider: {}, internal: {id: 'map'}}, function(){
markers = handler.addMarkers(<%=raw @hash.to_json %>);
handler.bounds.extendWith(markers);
handler.fitMapToBounds();
handler.getMap().setZoom(12);
}); </script>
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助!
我有一个Customer_ratings模型,允许用户互相留下反馈.Web应用程序正常运行,并收集,存储和显示反馈.
我想通过rails控制台进入并删除一些反馈,但是当我输入时Customer_rating.all,我收到以下错误:
LoadError: Unable to autoload constant Customer_rating, expected /Users/myapps/app/models/customer_rating.rb to define it
Run Code Online (Sandbox Code Playgroud)
同样,如果我输入Customer_rating [0],我会得到:
RuntimeError: Circular dependency detected while autoloading constant Customer_rating
Run Code Online (Sandbox Code Playgroud)
通过我的控制台访问其他表时我没有这个问题.
可能导致此问题的原因,以及为什么此错误不会禁止Customer_ratings通过Web应用程序正常工作?
我正在使用bootstrap的collapse.js来扩展和折叠rails应用程序中的一些输入组.我正在使用JS来确定是否扩展了组,并创建了CSS类来添加"+"或" - "以显示它是打开还是关闭:
打开:

关闭:

从CSS中可以看出,我正在使用背景图像,这是我的图像中的一个png:
.expandable {
background: url('/assets/plus.png');
padding-top: 4px;
width: 400px;
height: 30px;
background-repeat: no-repeat;
padding-left: 55px;
display: block;
}
.expanded {
background: url('/assets/minus.png');
padding-top: 4px;
width: 400px;
height: 30px;
background-repeat: no-repeat;
padding-left: 55px;
display: block;
}
Run Code Online (Sandbox Code Playgroud)
我想使用glyphicon-plus和glyphicon-minus而不是这些.png文件.
实现这一目标的最佳方法是什么?
更新:
为了获得正确的样式,我将CSS更改为:
.expandable {
height:40px;
width:50%;
margin:6px;
}
.expandable:before{
content:"\2b";
font-family:"Glyphicons Halflings";
line-height:1;
margin:5px;
}
.expanded {
height:40px;
width:50%;
margin:6px;
}
.expanded:before{
content:"\2212";
font-family:"Glyphicons Halflings";
line-height:1;
margin:5px;
}
Run Code Online (Sandbox Code Playgroud)
作为参考,我的HTML是:
<div class="panel-group" id="accordion">
<div class="panel panel-default">
<div class="panel-heading">
<p1 …Run Code Online (Sandbox Code Playgroud) 我有搜索输入框,我想要使用bootstrap表单控件外观设置样式.问题是,我还希望搜索按钮与搜索框在同一行.我认为这可以使用form-inline来完成,但是当我将类表单控件添加到搜索框时,搜索按钮会被推送到下一行:
<div class="input-group" >
<div class="form-inline">
<input id="address" type="textbox" placeholder="City or Zipcode" class="form-control" >
<input class="btn btn-sm btn-primary" type="button" value="Search" id="addressSearch">
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
如果我从输入文本框中删除class ="form-control",则该按钮将以内嵌方式显示:
如何在保持按钮内联的同时保持form-contol框样式?
我正在构建一个付款页面,列出三种不同的订阅选项,并使用Stripe的结帐来管理付款.
页面正确呈现,并且所有3个订阅选项都具有应该链接到Stripe的"立即购买"按钮.
我的问题是第一个按钮是唯一一个正确拉起Stripe结帐流程的按钮.按钮2和3抛出以下错误:
未知操作无法为ChargesController找到操作"索引"
我的付款页面的相关部分是:
<% @plans.each do |plan| %>
<li class="col-md-3 plan <%= 'plan-primary' if plan.highlight? %>">
<div class="img-thumbnail">
<div class="caption">
<h3><%= plan.name %></h3>
<h4><%= plan_price(plan) %></h4>
<div class="call-to-action">
<% if @subscription.nil? %>
<% if plan.highlight? %>
<%= form_tag main_app.charges_path do %>
<script src="https://checkout.stripe.com/checkout.js"></script>
<button id="customButton" class="btn btn-success">Buy Now</button>
<script>
var handler = StripeCheckout.configure({
key: '<%= 'pk_test_my_pk' %>',
image: '/assets/my_logo.png',
token: function(response) {
var tokenInput = $("<input type=hidden name=stripeToken />").val(response.id);
var emailInput = $("<input type=hidden name=stripeEmail />").val(response.email);
$("form").append(tokenInput).append(emailInput).submit();
} …Run Code Online (Sandbox Code Playgroud) Rails app,使用Kickstarter的机架攻击
在我的config/rack-attack.rb文件中,我有:
class Rack::Attack
Rack::Attack.blacklist ('block ip') do |req|
# Request are blocked if the return value is truthy
'68.888.23.22' == req.ip
# req.ip if IPCat.datacenter?(req.ip)
end
end
Run Code Online (Sandbox Code Playgroud)
这一直很好,直到我开始使用CloudFlare.req.ip现在是Cloudflare IP vs实际最终用户的IP
尝试将用户的IP保存到我的服务器日志时,我遇到了类似的问题(正在保存Cloudflare IP).为了解决这个问题,我将以下内容添加到应用程序控制器中:
module ActionDispatch
class Request < Rack::Request
alias :remote_ip_orig :remote_ip
def remote_ip
@remote_ip ||= (@env['HTTP_CF_CONNECTING_IP'] || remote_ip_orig)
end
end
end
Run Code Online (Sandbox Code Playgroud)
是否有一个类似的过程,以便在机架攻击中使用HTTP_CF_CONNECTING_IP作为req.ip?
带有Bootstrap 3的Rails 4应用程序
我有一个包含单选按钮输入的表单:
<strong> Radio button options on form </strong><br>
<div class="form-group">
 <%= f.radio_button :category, 'A' %>   <%= f.label "A", "A" %><br />
 <%= f.radio_button :category, 'B' %>   <%= f.label "B", "B" %><br />
 <%= f.radio_button :category, 'C' %>   <%= f.label "C", "C" %><br />
</div>
Run Code Online (Sandbox Code Playgroud)
第一次加载表单时,一切看起来都正确:

我的问题是,如果表单由于验证错误而失败(缺少所需的输入等,在表单上的任何位置),当页面重新呈现时,单选按钮和标签显示在两个不同的行上:

我该如何解决这个问题?
更新 为每个生成的HTML是:原始(正确):
<strong> Radio button options on form </strong><br>
<div class="form-group">
 <input id="listing_category_1" name="listing[category]" type="radio" value="1" />   <label for="listing_1">A</label><br />
 <input id="listing_category_2" name="listing[category]" type="radio" value="2" /> …Run Code Online (Sandbox Code Playgroud) 我有一个在heroku上运行的rails应用程序,我正在使用Cloudflare Pro和他们的完整SSL来加密以下流量:用户<-SSL-> Cloudflare <-SSL-> Heroku,详见:http://mikecoutermarsh.com/ 添加-ssl-to-heroku-with-cloudflare /.
我还使用rack-ssl-enforcer gem来强制所有http请求通过https.
这是正常的,除了我有以下问题,浏览器:
1)Firefox.我必须在第一次访问该站点时添加安全性异常,获得"此站点不受信任"警告.进入网站后,我在地址栏中也有警告:
2)Chrome:第一次加载页面,但地址栏中的锁定上有一个警告三角形,点击后显示:
您的连接使用128位加密进行加密.但是,此页面包含其他不安全的资源.其他人在传输过程中可以查看这些资源,攻击者可以修改这些资源以更改页面外观.连接使用TLS 1.2.使用AES_128_GCM对连接进行加密和身份验证,并使用ECDHE_RSA作为密钥交换机制.
Safari:最初使用https徽章加载,但会立即下降
有没有办法利用Cloudflare SSL +搭载Heroku原生SSL而不会遇到这些安全警告?如果没有,我认为配置中没有多少价值.
我有一系列哈希:
@operating_systems = [
{"title"=>"iPhone", "value_percent"=>"42.6"},
{"title"=>"Windows 7", "value_percent"=>"21.3"},
{"title"=>"Android", "value_percent"=>"12.8"},
{"title"=>"Mac OS X", "value_percent"=>"8.5"},
{"title"=>"Windows 8.1", "value_percent"=>"6.4"},
{"title"=>"Windows XP", "value_percent"=>"4.3"},
{"title"=>"Linux", "value_percent"=>"2.1"},
{"title"=>"Windows Vista", "value_percent"=>"2.1"}
]
Run Code Online (Sandbox Code Playgroud)
并想要创建以下哈希:
{"iphone" => "42.6", "windows 7" => "21.3", ... "windows vista" => "2.1"}
Run Code Online (Sandbox Code Playgroud)
完成此任务的最佳方法是什么?
cloudflare ×2
html ×2
arrays ×1
associations ×1
autoload ×1
css ×1
glyphicons ×1
gmaps4rails ×1
gmaps4rails2 ×1
hash ×1
heroku ×1
ip-address ×1
javascript ×1
rackattack ×1
radio-button ×1
ruby ×1
ssl ×1