小编lul*_*ala的帖子

内置capistrano变量

有人知道所有内置Capistrano变量的列表,比如current_path等吗?

ruby capistrano ruby-on-rails

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

如何搜索"text"然后从找到的节点遍历DOM?

我有网页,我需要从中抓取一些数据.问题是,每个页面可能有也可能没有特定数据,或者它可能在DOM中具有高于或低于它的额外数据,并且没有CSS ID可以说.

通常我可以使用CSS ID或XPath来访问我正在寻找的节点.在这种情况下我没有这个选项.我正在尝试做的是搜索"标签"文本,然后在下一个<TD>节点中获取数据:

<tr> 
    <td><b>Name:</b></td> 
    <td>Joe Smith <small><a href="/Joe"><img src="/joe.png"></a></small></td> 
</tr>
Run Code Online (Sandbox Code Playgroud)

在上面的HTML中,我会搜索:

doc.search("[text()*='Name:']")
Run Code Online (Sandbox Code Playgroud)

在我需要的数据之前获取节点,但我不确定如何从那里导航.

ruby nokogiri

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

将sass-rails gem升级到5.0会给出弃用警告

我们升级到sass-rails版本5.0.0并获得此弃用警告:

DEPRECATION WARNING: Extra .css in SCSS file is unnecessary. Rename /Users/foo/Projects/foo/app/assets/stylesheets/foo.css.scss to /Users/foo/Projects/foo/app/assets/stylesheets/foo.scss. (called from _app_views_layouts_application_html_erb__1560597815210891605_70190441246060 at /Users/foo/Projects/foo/app/views/layouts/application.html.erb:13)
Run Code Online (Sandbox Code Playgroud)

有谁知道这是怎么回事?gem是否真的希望我重命名我的所有样式表资源:

app/assets/stylesheets/foo.css.scss
Run Code Online (Sandbox Code Playgroud)

至:

app/assets/stylesheets/foo.scss
Run Code Online (Sandbox Code Playgroud)

似乎与我一起反对多年的Rails惯例.也许有办法抑制弃用警告?

ruby-on-rails sass asset-pipeline

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

Chrome Image EXIF定向问题

我正在构建一个显示图片的网络应用程序.大部分照片都是由智能手机拍摄的,并且有EXIF旋转信息.我正在暴露一个不经修改就返回图像blob的url.

我注意到,当我将此网址放入img标记时,Chrome不会尊重EXIF方向数据,但是当我将网址放在Chrome地址栏中时,它会显示包含图片的页面,然后它会尊重EXIF方向.

对不起,我无法分享图片,我会尝试找到另一个我可以分享的例子.

有没有人注意到这个问题?

browser firefox google-chrome exif

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

将自动增量添加回Rails中的主键列

我错误地从表格的id字段中删除了自动增量选项.谁能告诉我如何通过迁移重新插入自动增量选项?

activerecord ruby-on-rails auto-increment rails-migrations

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

Carrierwave临时目录设置为上传/ tmp文件夹

我开始使用Carrierwave,我发现它在多个地方存储临时文件,具体取决于它是测试还是延迟工作.

如果在测试期间(rspec)完成,则临时文件将位于RAILS_ROOT/uploads/tmp目录中.

如果在延迟作业期间完成,则临时文件将为 RAILS_ROOT/public/uploads/tmp

首先,我认为这rails_root/tmp/uploads将是一个更明智的地方,甚至系统临时文件夹.

其次,测试与正常运行不同似乎是一个bug.

有没有办法解决这个问题(通过配置或猴子修补)?我可以把东西放在RAILS_ROOT/tmp文件夹中吗?

ruby-on-rails carrierwave

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

同时运行延迟作业和Sidekiq

我目前使用延迟作业来异步处理作业.我没有创建工人,而是使用.delay了很多方法.

我想转移到Sidekiq,但是我有太多类型的工作,并且不能确保它们都是线程安全的.所以我想并行运行Delayed Job和Sidekiq,并一次迁移一种类型的作业.

由于Delayed Job和Sidekiq都提供了这种.delay方法,我如何区分这两者?还有其他潜在问题吗?

ruby delayed-job ruby-on-rails-3 sidekiq

14
推荐指数
2
解决办法
3959
查看次数

:确认导轨无法正常工作

我刚刚开始使用ruby在rails上进行编码,而且我一直在关注一个使用比我正在使用的更过时版本的rails的指南.我正在使用3.2.12

这是我的代码:

<%= button_to 'Destroy', product, :method => "delete", :confirm => 'Are you sure?'  %>
Run Code Online (Sandbox Code Playgroud)

根据我的理解,这些是传递给rails的符号,然后转换为html或javascript操作,然后弹出消息框并删除对象(如果适用).上面的代码会破坏对象,但不会弹出确认框.为什么是这样?另外,我首先得到以下内容:

<%= link_to 'Destroy', product, :method => "delete", :confirm => 'Are you sure?'  %>
Run Code Online (Sandbox Code Playgroud)

在任何情况下,使用link_to或button_to都不会弹出确认框.下面是使用Chrome检查器检查时呈现的html.jquery和jquery-ujs也加载到了这里,所以我不知道从哪里开始.

<input name="_method" type="hidden" value="delete">
<input data-confirm="Are you sureeee?" type="submit" value="Destroy">
<input name="authenticity_token" type="hidden" value="Q2xicqELHYHtrwarbtPBe5PT2bZgWV5C+JdcReJI8ig=">
Run Code Online (Sandbox Code Playgroud)

谢谢!

ruby-on-rails link-to button-to

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

Rails 3.1,nginx,禁止使用目录索引

当我访问.com时,我在nginx(带有403)中收到以下错误:

[error] 5384#0: *1 directory index of "/u/apps/<app-name>/current/public/" is forbidden
Run Code Online (Sandbox Code Playgroud)

我在Ubuntu 10.04上,我不能为我的生活让nginx,Passenger,Rails 3.1和Capistrano玩得很好.

我正在与Capistrano一起部署到/ u./ u中的所有内容均为755,由应用用户拥有.

/ u/apps // current/public /拥有我所有的资产,图标和其他你期望的东西.

当我添加autoindex on到nginx.conf时,我得到了一个public /目录的列表,这让我相信我没有权限问题.

我的nginx.conf文件是默认的期望:

server {
    listen 80;
    server_name <app-name>.com;
    passenger_enabled on;
    root /u/apps/<app-name>/current/public/;
}
Run Code Online (Sandbox Code Playgroud)

而我的Capistrano deploy.rb文件并没有什么异常.

任何想法为什么rails应用程序似乎没有启动?

passenger nginx ruby-on-rails-3

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

如何在Rspec中存根载波?

我想在我的测试中使用stubwave来阻止它在网上获取图像.我将如何实现这一目标?

我的抓取工具解析远程网页,并将一个图像网址保存到模型中.Carrierwave将在保存操作期间自动获取该图像.它运作良好.

但是我有一个关于页面解析的测试,并且每次都会下载文件,这会减慢测试速度.

更新:

我按以下方式安装上传器(在预先存在的回形针列中)

mount_uploader :image, TopicImageUploader, :mount_on => :image_file_name
Run Code Online (Sandbox Code Playgroud)

我试图将以下内容存根,但都没有奏效:

Topic.any_instance.stub(:store_image!)
Topic.any_instance.stub(:store_image_file_name!)
Topic.any_instance.stub(:store_image_remote_url!)
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails carrierwave

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