小编Phr*_*ogz的帖子

Heroku应用程序崩溃,日志说"没有这样的文件加载 - nokogiri(LoadError)"

我有一个工作的应用程序,添加了Nokogiri,解析一些xml,在本地运行良好.

我的Gemfile包括: gem 'nokogiri'

我运行bundle install并验证了我的Gemfile.lock包含DEPENDENCIES...nokogiri

在我的控制器类中,我添加了(没想到我必须在本地出现错误,如果我没有):

class MydealController < ApplicationController
  require 'rubygems'
  require 'open-uri'
  require 'nokogiri'
Run Code Online (Sandbox Code Playgroud)

当我使用我的浏览器获取使用nokogiri doc = Nokogiri::XML(getresult)Heroku崩溃的MydealController中的url时.

heroku logs 显示此错误 No such file to load -- nokogiri (LoadError)

看看当我git push heroku没有在许多安装的宝石列表中看到nokogiri 时会发生什么.Heroku说推进很好,但nokogiri没有列出,我得到上述错误......

heroku nokogiri ruby-on-rails-3

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

Ruby 1.9.2:irb throws ArgumentError:输入德语变音时,UTF-8中的字节序列无效

我想在我的irb中输入德国的变形金刚但得到一个奇怪的错误.我可以输入任何äöü没有问题的字符,但每个都会ÄÖÜß导致以下错误:

$ irb
ruby-1.9.2-p136 :001 > ? # here I entered Ü but it displays only ?
/Users/lorenz/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/irb/ruby-lex.rb:728:in
`block in lex_int2': invalid byte sequence in UTF-8 (ArgumentError)
Run Code Online (Sandbox Code Playgroud)

我看过很多关于Ruby,rvm和UTF-8的SO问题,但都没有帮助.大多数都绑定到rails或数据库配置.我特意检查了以下内容:

语言环境设置正确

$ locale
LANG="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_CTYPE="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_ALL="de_DE.UTF-8"
Run Code Online (Sandbox Code Playgroud)

Terminal.app设置为Unicode(UTF-8)并正确设置Encoding.default_external:

$ irb
ruby-1.9.2-p136 :001 > Encoding.default_external
 => #<Encoding:UTF-8>
Run Code Online (Sandbox Code Playgroud)

为什么在Ruby中这仍然很难?

ruby macos irb utf-8

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

如何将整个<tr>变成一个链接

我有以下代码:

<table>
<tr>
    <td><a href="#">some text</a></td>
    <td>some more text</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)

我试图将这个表的整行变成一个超链接,但我不想使用JavaScript鼠标事件,因为我被限制使用JavaScript.我尝试过使用CSS但只找到了通过以下方式将个人变成超链接的方法:有a href style="display block;"没有人知道用css方法将整行变成超链接?

html css

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

从inner_html中删除评论

我有一些使用Nokogiri的代码,我试图得到inner_html没有得到评论.

html = Nokogiri::HTML(open(@sql_scripts_url[1])) #using first value of the array
html.css('td[class="ms-formbody"]').each do |node|
  puts node.inner_html # prints comments
end
Run Code Online (Sandbox Code Playgroud)

ruby nokogiri

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

在两个对象之间的HTML5 Canvas上绘制一个箭头

我正在研究概念图应用程序,它有一组节点和链接.我已使用节点的中心作为参考将链接连接到节点.由于我有不同大小和形状的节点,因此建议不要通过指定形状的高度或宽度来绘制链接的箭头.我的方法是绘制一个链接,从一个节点开始,逐个像素,直到到达下一个节点(这里的节点颜色与背景颜色不同),然后通过访问像素值,我希望能够决定链接和节点的交点,实际上是绘制箭头的坐标.

如果我能得到一些帮助,那就太好了.

示例代码:http: //jsfiddle.net/9tUQP/4/

这里绿色方块是节点,从左方开始并进入右方的线是链接.我希望在链接和右方的交叉点绘制箭头.

javascript html5 canvas

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

在javascript中转义</ script>标记

我正在使用骨干,以及在页面加载时传递集合的一般方法

window.router = new Routers.ManageRouter({store: #{@store.to_json});
Run Code Online (Sandbox Code Playgroud)

这很好,效果很好,直到有人决定将文本" <script>alert("owned")</script>" 添加到其中一个商店字段.最后</script>明显关闭了javascript.怎么能绕过这个呢?

  :javascript
    $(function() {
      window.router = new Dotz.Routers.ManageRouter({store: #{@store.to_json}});
      Backbone.history.start();
    });
Run Code Online (Sandbox Code Playgroud)

以上输出:

<script>
    //<![CDATA[
      $(function() {
        window.router = new Dotz.Routers.ManageRouter({store: '{"_id":"4f3300e19c2ee41d9a00001c", "points_text":"<script>alert(\"hey\");</script>"'});
        Backbone.history.start();
      });
    //]]>
  </script>
Run Code Online (Sandbox Code Playgroud)

javascript ruby haml ruby-on-rails backbone.js

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

获取没有文本节点的元素的子元素

我使用Nokogiri和Ruby来解释XML文件的内容.我想得到一个数组(或类似的)所有元素,<where>在我的例子中是直接的孩子.但是,我得到了各种文本节点(例如"\n\t\t\t"),这是我不想要的.有什么方法可以删除或忽略它们吗?

@body = "
<xml>
  <request>
    <where>
      <username compare='e'>Admin</username>
      <rank compare='gt'>5</rank>
    </where>
  </request>
</xml>" #in my code, the XML contains tab-indentation, rather than spaces. It is edited here for display purposes.

@noko = Nokogiri::XML(@body)
xml_request = @noko.xpath("//xml/request")
where = xml_request.xpath("where")
c = where.children
p c
Run Code Online (Sandbox Code Playgroud)

上面的Ruby脚本输出:

[#<Nokogiri::XML::Text:0x100344c "\n\t\t\t">, #<Nokogiri::XML::Element:0x1003350 name="username" attributes=[#<Nokogiri::XML::Attr:0x10032fc name="compare" value="e">] children=[#<Nokogiri::XML::Text:0x1007580 "Admin">]>, #<Nokogiri::XML::Text:0x100734c "\n\t\t\t">, #<Nokogiri::XML::Element:0x100722c name="rank" attributes=[#<Nokogiri::XML::Attr:0x10071d8 name="compare" value="gt">] children=[#<Nokogiri::XML::Text:0x1006cec "5">]>, #<Nokogiri::XML::Text:0x10068a8 "\n\t\t">]

我想以某种方式获得以下对象:

[#<Nokogiri::XML::Element:0x1003350 name="username" attributes=[#<Nokogiri::XML::Attr:0x10032fc name="compare" value="e">] children=[#<Nokogiri::XML::Text:0x1007580 "Admin">]>, #Nokogiri::XML::Element:0x100722c name="rank" …

ruby xml xpath nokogiri

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

将stderr重定向到Logger实例

我有一个Logger实例:

require 'logger'
logger = Logger.new( 'foo.log', 'weekly' )
Run Code Online (Sandbox Code Playgroud)

我想将运行时错误(stderr输出)重定向到日志中.我发现这个论坛帖子有以下建议:

new_fd = logger.get_logger_file_descriptor
$stderr.reopen new_fd
Run Code Online (Sandbox Code Playgroud)

但是,Logger没有实例方法get_logger_file_descriptor,也无法找到任何公开的方法来获取对日志设备或文件的访问权限.

如何让所有$ stderr输出进入日志?

ruby stderr

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

变换后的SVG元素上的getBoundingClientRect()应该返回什么?

今天我测试了当你使用getBoundingClientRect()已旋转的SVG元素时会发生什么.

测试:http://phrogz.net/svg/getBoundingClientRect-on-rotated-elements.html

结果是:

  • Chrome,Safari,Opera和IE似乎计算元素的本地(未转换)边界框,然后返回该边界框的客户端矩形.这可能导致客户端矩形比看起来合适.

  • 另一方面,Firefox会剪切客户端矩形以适应元素本身.

 
                          两种情况的视觉外观;  

根据规格,哪种行为是正确的?

对于它的价值,我更喜欢Firefox的行为,但(缺乏对规格的理解)认为 Firefox的偏差应该被认为是一个bug.

javascript svg specifications

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

动态地将src内容加载到SVG图像

我在浏览器中呈现了SVG <image>.我想在http://jsfiddle.net/dt1510/pXA9P/1/上尝试动态更改其内容.在console.debug中,内容已更改,但在浏览器中它是相同的.

<svg>  
  <image x="20" y="20" width="300" height="80"
     xlink:href="http://www.erh.noaa.gov/ilm/OpenLayers/img/marker.png" />    
</svg>?
Run Code Online (Sandbox Code Playgroud)
var srcAirline = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAD0AAAA9CAYAAAAeYmHpAAADD0lEQVR42u2aq3LrMBCG+0oH9hUOPK9QWFhYemBhYWhhYWBpYGBgqGGgYduv039mq65l+SY7sjXjcS62pW/1e6Vd6eZ9heVGH46nS/FHdal/Qv+5OxZ/PO+rDTpr5bf3x/fDp9wed+f1QO8Pl686689XDAMUDw2kLU+vVfnQSNqW47kuH1rStqV46HNV/4L+9/9UNrRXcnnxWaDpUa/s9lW50HdPPnQuZzYL9O670g36e5JSLLQ3XOWsfxZoZLxBZx6rFweNZy8OmsAiVjDI1BFXNmjFzikFLz5lj2eBBqC6dE/cTTVDmxy6aUxOLVPIfTJoGhpzWF3K2HKfBJoG1vX4eeqXt2qZ0EPl3FaIw/8+npYBPaacU+T+8HyeF5oG1Hl4R5H7YGgqTi2M00xOYqElBiQgSTViH7n3hqYiL8/lgZIGssNOahIBA2DUtjG+q9x7QcfkzO/0VAiakjmJTUYIRNoMQL0pY3ov6NBhCTTV2qhkyAwMA3Ctp7QUqfeClsU59500eKXPKgeQ3CcDXF0KOEdYOSu0N6avEjrXyuVs0N74XvxaVphQwDEWu5aFhJsmNUPn1IuEpidTMihTL9BnhaaHcWBMLOhRK3E8N7BMcrju6nNkbQt5gK5qSxWSz7nJZttHNgZ0alzLdepdzlfb04Aw5LRlM7SrSI4Kp8VxtT0NcNsEQ1kTQWOERe8YRIYaVpT6sdIESDCc+a7Yl4NrPWjF0ahFz+B31eGth/Ef7QiHNt2nugdDhxvewhSPTQR4eTAPWoFHakbFC1Q0i/Pq9IzWWd40jMZbA8SgsbqGJk/eHjSzNuqQn+C70lThM/lfPkHP4jolFzwn2QmaSqiQh3NoShmDDuWXAu31rL0XWeuVsW3Q/3KoTaNJJ2glAzlbmeWGjm3b4BqbtPScZDJ0KD0bE+eC1oJ+SiSm18/bppUMbTOYknjunlYb6EmgMLpdyqVdvN8YR/cNgg7lRY/bBuWAVg9a+fJZTtJmRWPxeWfvjbVzJfBi8wXa0NQOtbFpersFHBv0Bl049JrKB2+Sq02r4bQjAAAAAElFTkSuQmCC";

$('document').ready(change_image);

function change_image(){    
    var images = $("image");
    var image = images[0];        
    $(image).removeAttr("xlink:href");
    $(image).attr("src", srcAirline);
    console.debug(image);
}
Run Code Online (Sandbox Code Playgroud)

我在某处读到了AJAX请求可能的情况,但页面需要离线显示.我也有约束,图像内容需要存储在变量中,不能保存为外部资源.

有没有简单的方法可以动态更改SVG图像的内容?

javascript jquery svg

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