小编Kre*_*eki的帖子

删除String中的多个空格和新行

假设我们有这样的字符串:

Hello, my\n       name is Michael.
Run Code Online (Sandbox Code Playgroud)

如何删除该新行并将其后的那些空格删除到字符串内部以获取此内容?

Hello, my name is Michael.
Run Code Online (Sandbox Code Playgroud)

ruby string

94
推荐指数
6
解决办法
6万
查看次数

获取Nokogiri中属性的值以提取链接URL

我有一个看起来像这样的文件:

<div id="block">
    <a href="http://google.com">link</a>
</div>
Run Code Online (Sandbox Code Playgroud)

我无法让Nokogiri获得href属性的价值.我想将地址存储在Ruby变量中作为字符串.

ruby ruby-on-rails nokogiri

29
推荐指数
4
解决办法
5万
查看次数

Phonegap/Cordova地理位置无法在Android上运行

我很难让Geolocation在Android模拟器上工作(即使我geo fix通过telnet)和设备上.适用于iOS,WP8和浏览器.

当我使用以下代码询问设备的位置时,我总是收到错误(在我的情况下自定义Retrieving your position failed for unknown reason.同时null包含错误代码和错误消息).

相关代码:

    successHandler = (position) ->
      resolve App.Location.create
        lat: position.coords.latitude
        lng: position.coords.longitude

    errorHandler = (error) ->
      error = switch error.code
        when 1
          App.LocationError.create
            message: 'You haven\'t shared your location.'
        when 2
          App.LocationError.create
            message: 'Couldn\'t detect your current location.'
        when 3
          App.LocationError.create
            message: 'Retrieving your position timeouted.'
        else
          App.LocationError.create
            message: 'Retrieving your position failed for unknown reason. Error code: ' + error.code + '. Error message: ' …
Run Code Online (Sandbox Code Playgroud)

android geolocation cordova

20
推荐指数
5
解决办法
4万
查看次数

显示所有领导者映射

我在我.vimrc的映射中设置了一些命令,r.

但是当我按下时,r,vim不会立即触发命令但等待一段时间,所以我可以输入更多的字符.这意味着我有一些东西设置为更长的映射,例如,re,rt.

我没有使用任何这样的映射,也没有看到<leader>rX我的任何映射.vimrc.看起来有些插件正在设置它.

有没有办法显示所有领导者映射,以确定哪个映射是什么?

vim

20
推荐指数
3
解决办法
2964
查看次数

在select_tag中提示

在我的用户注册申请中,我有一个国家选择器..

<%= select(:user, :country, options_for_select(@COUNTRIES)) %>
Run Code Online (Sandbox Code Playgroud)

我想添加一个提示作为第一个默认值(类似"--- select country ---").我应该在哪里以及如何选择此选项?

ruby-on-rails ruby-on-rails-3

16
推荐指数
2
解决办法
2万
查看次数

在浏览器中渲染模板并更改网址字符串?

我有2个动作 - 编辑和更新."编辑"中的表单将值提交给"更新"操作.当保存模型失败时,我渲染编辑teplate,用户看到错误,并且字段预先填充了之前填充的内容.有一个巨大但对我来说 - 在用户浏览器中的URL面板中有/ user/update,即使(因为)我渲染了编辑模板.我可以通过在update操作中将一些参数传递给render方法来改变它吗?我不希望用户看到除了编辑之外还有任何(更新)操作.可能吗?

ruby-on-rails ruby-on-rails-3

9
推荐指数
2
解决办法
7909
查看次数

从Mechanize中删除以前存储的Cookie

是否有方法或任何其他方法可以用来删除Mechanize中以前存储的所有Cookie?它记得我已登录,在我的情况下,这不是一件好事.我应该在每次连接到页面时登录.

ruby mechanize

8
推荐指数
1
解决办法
2871
查看次数

使用Typheous手动登录网站

最近我使用Mechanize来做这种事情,但是我想使用Typhoeus,我已经在其他地方使用了它.我想模仿Mechanize的行为,问题是我想登录到一个站点并按登录用户的身份执行请求.这是脚本的通用版本:

require 'rubygems'
require 'typhoeus'

GET_URL = 'http://localhost:3000'
POST_URL = "http://localhost:3000/admins/sign_in"
URL = "http://localhost:3000/dashboard"
USERNAME_FIELD = 'admin[email]'
PASSWORD_FIELD = 'admin[password]'
USERNAME = "admin@example.com"
PASSWORD = "my_secret_password"

def merge_cookies_into_cookie_jar(response)                            
  if response.headers_hash['set-cookie'].instance_of? Array
    response.headers_hash['set-cookie'].each do |cookie|
      @cookie_jar << cookie.split('; ')[0]
    end
  elsif response.headers_hash['set-cookie'].instance_of? String
    @cookie_jar << response.headers_hash['set-cookie'].split('; ')[0]
  end        
end

# initialize cookie jar
@cookie_jar = []

# for server to establish me a session
response = Typhoeus::Request.get( GET_URL, :follow_location => true )
merge_cookies_into_cookie_jar(response)                                                   

# like submiting a log in form
response …
Run Code Online (Sandbox Code Playgroud)

ruby cookies ruby-on-rails typhoeus

6
推荐指数
1
解决办法
2270
查看次数

在Vim失踪的领导者

我花了差不多两年的编程时间,直到我决定将Textmate转换为Vim,到目前为止我喜欢它.然而,在玩了几天后,我遇到了第一个问题.

作为初学者,我和许多人一样接触了Janus,但最后我决定从头开始创建自己的配置,以便更好地了解这些内容.我支持我的配置并开始编写我的新.vimrc文件.但是后来(很早)我注意到领导键不起作用,当我按下它时它没有任何作用,它只是发出哔哔声.我没有改变领导者的关键也没有进行任何关键映射,所以我有点意外.

所以我再一次删除了我的.vimrc文件和.vim目录,以一个干净的状态开始.它没有帮助.所以我打开了Vim并试图将一个领导者重新配置为一个不同的密钥以查看它是否有帮助.

:let mapleader
> E121: Undefined variable: mapleader
:let mapleader = ','
:let mapleader
> mapleader          ,
Run Code Online (Sandbox Code Playgroud)

看起来很好但没有真正发生.即使我把它放在一个不同的键下,我的Mac也会发出哔哔声.我的主目录中没有vim配置,没有插件,没有.在'.vimrc'中设置领导者而不是vim控制台也无济于事.

我在这里看到了关于按键超时的一些讨论,但它没有把我带到任何地方.

我有点被困在这里,即使我喜欢,也无法将Vim用于我的日常工作.任何帮助将受到高度赞赏.

vim

6
推荐指数
2
解决办法
1397
查看次数

Nokogiri如何处理像?一样的未封闭HTML标签?

在解析HTML文档时,Nokogiri如何处理<br>标签?假设我们的文档看起来像这样:

<div>
   Hi <br>
   How are you? <br>
</div>
Run Code Online (Sandbox Code Playgroud)

Nokogiri知道<br>标签是特殊的,不仅仅是常规XML标签,在解析节点源时忽略它们吗?我认为Nokogiri很聪明,但我想在接受这个涉及抓取HTML4网站的项目之前确定一下.你知道我的意思(How are you?不是第一个内容,<br>就像在XML中一样).

ruby nokogiri

5
推荐指数
2
解决办法
2376
查看次数

内容谈判是否破裂?

我最近对网络爬虫感兴趣,但有一点对我来说不是很清楚.想象一个简单的爬虫,它将获取页面,从中提取链接并排队,以便以后以相同的方式处理.

当某些链接不会导致另一个页面而不是某个资产或其他类型的静态文件时,爬虫如何处理这种情况呢?怎么会知道的?它可能不想下载这种可能很大的二进制数据,甚至也不想下载xml或json文件.内容谈判如何落入这个?

怎么我看到的内容协商应该工作是在Web服务器上的一面,当我发出一个请求example.com/foo.pngAccept: text/html它应该给我回一个HTML响应或Bad Request状态,如果它不能满足我的要求,其他什么都可以接受的,但是这不是它是如何工作的现实生活.无论如何,它Content-Type: image/png甚至在我告诉它时我都会将这个二进制数据发回给我,我只接受text/html.为什么网络服务器这样工作而不是强迫我要求的正确回应?

内容协商的实施是否被破坏或者应用程序有责任正确实施它?

真正的抓取工具如何工作?提前发送HEAD请求以检查链接另一端的什么是不切实际的资源浪费.

http web-crawler content-negotiation

4
推荐指数
1
解决办法
249
查看次数

命名空间模型导致UndefinedTable错误

我有以下命名空间模型:

# app/models/face_data/pool_membership.rb
class FaceData::PoolMembership < ActiveRecord::Base
  self.table_name = 'face_data_pool_memberships'

  belongs_to :pool, class_name: 'FaceData::Pool'
  belongs_to :photo
end

# app/models/face_data/pool.rb
class FaceData::Pool < ActiveRecord::Base
  self.table_name = 'face_data_pools'
end

# app/models/photo.rb
class Photo < ActiveRecord::Base
  has_many :pool_memberships, class_name: 'FaceData::PoolMembership'
  has_many :pools, through: :pool_memberships, class_name: 'FaceData::Pool'
end
Run Code Online (Sandbox Code Playgroud)

和数据库架构如下:

# db/schema.rb
create_table "face_data_pool_memberships", force: true do |t|
  # omitted
end

create_table "face_data_pools", force: true do |t|
  # omitted
end
Run Code Online (Sandbox Code Playgroud)

该应用程序运行正常但在启动时(服务器,rake任务等)我收到以下错误:

 PG::UndefinedTable: ERROR:  relation "pool_memberships" does not exist
 LINE 5:                WHERE a.attrelid = '"pool_memberships"'::regc...
 ^ …
Run Code Online (Sandbox Code Playgroud)

activerecord ruby-on-rails

4
推荐指数
1
解决办法
783
查看次数

每隔<设置一天>自动执行脚本

我想在凌晨3点每天在两​​个数据库之间运行同步ruby脚本(如果可能的话,在rails中执行).将这些时间存储在数据库中会很好,因为如果同步失败我想将其设置为在一小时内再次尝试(并且在数据库中我可以轻松地将其更改为每天早上5点如果我我想,甚至其他管理员管理我的应用程序).我想在我的Rails应用程序中的一个操作中使用该脚本,因此我可以在管理中创建一个页面,只需单击脚本将运行的链接(不必要,它可以在一个单独的Ruby文件中,该操作将最终调用,但将它作为专用控制器中的动作会更好,因为我会有很多类似这样的脚本,我只想在一个地方拥有类似的东西).这有什么可能没有东西 - 我不知道 - 有什么关于 - 但是像cron一样吗?

ruby ruby-on-rails

1
推荐指数
1
解决办法
2498
查看次数