标签: ruby

在单个节点上使用XPath会返回所有节点中的元素

我正在解析一个看起来像这样的XML文档:

<MyBook>
   <title>Favorite Poems</title>
   <issn>123-456</issn>
   <pages>45</pages>
</MyBook>
<MyBook>
   <title>Chocolate Desserts</title>
   <issn>654-098</issn>
   <pages>100</pages>
</MyBook>
<MyBook>
   <title>Jabberwocky</title>
   <issn>454-545</issn>
   <pages>19</pages>
</MyBook>
Run Code Online (Sandbox Code Playgroud)

我使用xpath拉出MyBook节点并迭代它们,如下所示:

xmldoc.xpath("//MyBook").each do |node|
   mytitle=node.xpath("//title").text
   puts mytitle
end
Run Code Online (Sandbox Code Playgroud)

输出看起来像这样:

Favorite PoemsChocolateDessertsJabberwocky
Favorite PoemsChocolateDessertsJabberwocky
Favorite PoemsChocolateDessertsJabberwocky
Run Code Online (Sandbox Code Playgroud)

好像节点真的是整个xmldoc.但是,如果我在迭代器中打印出节点,那么每次它都是我期望的,只有一个MyBook节点.我需要能够连续地从每个节点中拉出子节点,而不是从整个文档中拉出所有相同类型的子节点.我究竟做错了什么?

ruby xml parsing nokogiri

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

Javascript数组:获取'范围'的项目

在Javascript中是否有类似于ruby的数组[n..m]?

例如:

>> a = ['a','b','c','d','e','f','g']
>> a[0..2]
=> ['a','b','c']
Run Code Online (Sandbox Code Playgroud)

谢谢

javascript ruby arrays range

43
推荐指数
3
解决办法
5万
查看次数

如何在Ruby中临时重定向stderr?

我想暂时在一个块的持续时间内将stderr重定向到Ruby脚本中,确保在块结束时将其重置为原始值.

我很难在ruby文档中找到如何做到这一点.

ruby stderr

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

*nix是什么意思?

*nix是什么意思,它与Ruby的关系是什么?

刚刚在面试问题中看到了......我认为与UNIX发行版有关,但我不确定.

无法在这里或在维基百科中找到它,所以我在问.

什么意思 ?

它与Ruby的关系是什么?因为问题是关于Ruby的.

ruby unix linux operating-system

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

Rails迁移添加和删除引用

创建迁移文件后,rails generate migration AddClientToUser我可以编辑我的迁移文件,如下所示:

class AddClientToUser < ActiveRecord::Migration
  def self.up
    change_table :users do |t|
      t.references :client
    end
  end

  def self.down
    change_table :users do |t|
      t.remove :client_id
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

这是反转迁移中添加的参考列的正确方法吗?

ruby rails-migrations ruby-on-rails-3

43
推荐指数
3
解决办法
4万
查看次数

我们什么时候在Rails中使用"|| ="运算符?它的意义是什么?

可能重复:
运算符|| =在ruby中代表什么?

||=对Rails 中运算符的使用感到困惑.我在网上找不到任何有用的东西.有人可以指导我吗?

如果有任何您知道的网络链接,请告诉我.

我想要以下声明的含义:

@_current_user ||= session[:current_user_id] &&
      User.find(session[:current_user_id])
Run Code Online (Sandbox Code Playgroud)

ruby operators

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

是否在测试之间清除了Rails.cache?

我们Rails.cache在Rails 3.2应用程序中使用缓存id/path映射.在某些机器上它运行正常,但在其他机器上的值是错误的.原因很难跟踪,所以我对Rails.cache自己有一些疑问.它是在测试之间清除的吗?是否有可能在测试模式中使用在开发模式中缓存的值?如果它没有被清除,我怎么能在运行规范之前做到这一点?

我的缓存存储配置是:

#in: config/environments/development.rb
config.cache_store = :memory_store, {:size => 64.megabytes}

#in: config/environments/production.rb
# config.cache_store = :mem_cache_store
Run Code Online (Sandbox Code Playgroud)

ruby caching rspec ruby-on-rails

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

Ruby:模块,需求和包含

我正在尝试使用Ruby模块(mixins).

我有test.rb:

#!/usr/bin/env ruby
require_relative 'lib/mymodule'

class MyApp
  include MyModule
  self.hallo
end
Run Code Online (Sandbox Code Playgroud)

和lib/mymodule.rb:

module MyModule
  def hallo
    puts "hallo"
  end
end
Run Code Online (Sandbox Code Playgroud)

非常简单的设置.但它不起作用:(:

ruby test.rb
test.rb:8:in `<class:MyApp>': undefined method `hallo' for MyApp:Class (NoMethodError)
        from test.rb:6:in `<main>'
Run Code Online (Sandbox Code Playgroud)

我的错误在哪里?

ruby module mixins

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

Rails控制台按ID数组查找用户

所以我有一组用户ID.在rails控制台中是否有一种方法可以使用该数组查询所有这些用户

就像是

ids = [1, 2, 3, 4]

users = User.find(ids)
Run Code Online (Sandbox Code Playgroud)

并让它返回所有4个用户?

ruby mysql postgresql ruby-on-rails rails-console

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

ActionController的:: UnknownFormat

在我的rails应用程序中,我有一个ajax请求到服务器,以存储一些数据.这曾经没有任何问题,但现在我收到一个错误:

ActionController::UnknownFormat (ActionController::UnknownFormat):
  app/controllers/reservations_controller.rb:45:in `create'
Run Code Online (Sandbox Code Playgroud)

以下是控制器和我的javascript文件,其中我声明数据类型是JSON

class ReservationController < ApplicationController

  respond_to :html, :json

  def create
    ...
    respond_to do |format|
      if @reservation.save
        format.html do
          redirect_to '/'
        end
        format.json { render json: @reservation.to_json }
      else
        render 'new'
      end
    end # respond_to
  end # create 
end # ReservationController
Run Code Online (Sandbox Code Playgroud)

function.js

$.ajax({
        url: url_link,
        dataType: 'json',
        type: 'POST',
        data: dataToSend
      })
Run Code Online (Sandbox Code Playgroud)

完整的错误日志是:

Completed 406 Not Acceptable in 45ms

ActionController::UnknownFormat (ActionController::UnknownFormat):
app/controllers/bookings_controller.rb:45:in `create'

Rendered /Users/tiagovieira/.rvm/gems/ruby-2.0.0-p451/gems/actionpack-4.0.0/lib/action_dispatch/middleware/templates/rescues/_source.erb (0.5ms)
Rendered /Users/tiagovieira/.rvm/gems/ruby-2.0.0-p451/gems/actionpack-4.0.0/lib/action_dispatch/middleware/templates/rescues/_trace.erb (0.8ms)
Rendered /Users/tiagovieira/.rvm/gems/ruby-2.0.0-p451/gems/actionpack-4.0.0/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (0.8ms)
Rendered /Users/tiagovieira/.rvm/gems/ruby-2.0.0-p451/gems/actionpack-4.0.0/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout …
Run Code Online (Sandbox Code Playgroud)

ruby ajax respond-to ruby-on-rails-4

43
推荐指数
3
解决办法
12万
查看次数