草庐IT

advanced-programming-in-unix

全部标签

ruby-on-rails - 正确执行 redirect_to :back in Ruby on Rails when referrer is not available

我在使用redirect_to:back时遇到问题。是的,它是推荐人。我经常遇到异常(ActionController::RedirectBackError)"NoHTTP_REFERERwassetintherequesttothisaction,soredirect_to:backcouldnotbecalledsuccessfully.Ifthisisatest,makesuretospecifyrequest.env[\"HTTP_REFERER\"]."我意识到这是由于推荐人不可用造成的。有没有一种方法,例如,可以在访问最后一个页面的每次访问时设置一个session变量,并且

ruby-on-rails - 更改 :id parameter in Routing resources for Rails 的名称

我四处查看如何更改动态参数槽,发现这篇文章完全符合要求。帖子是https://thoughtbot.com/blog/rails-patch-change-the-name-of-the-id-parameter-in基本上它所做的是,如果以下是路线:map.resources:clients,:key=>:client_namedo|client|client.resources:sites,:key=>:namedo|site|site.resources:articles,:key=>:titleendend这些路由创建以下路径:/clients/:client_name/cli

ruby - 你能为 map 提供参数吗(&:method) syntax in Ruby?

您可能熟悉以下Ruby速记(a是一个数组):a.map(&:method)例如,在irb中尝试以下操作:>>a=[:a,'a',1,1.0]=>[:a,"a",1,1.0]>>a.map(&:class)=>[Symbol,String,Fixnum,Float]语法a.map(&:class)是a.map{|x|的简写x.class.在“Whatdoesmap(&:name)meaninRuby?”中阅读有关此语法的更多信息。通过语法&:class,您正在为每个数组元素调用方法class。我的问题是:您可以为方法调用提供参数吗?如果是这样,怎么做到的?比如下面的语法你怎么转换a=[1

ruby-on-rails - 将持续时间转换为小时 :minutes:seconds (or similar) in Rails 3 or Ruby

我觉得有一种简单/内置的方法可以做到这一点,但我找不到。我有一个整数的持续时间(以秒为单位),我想以一种友好的格式显示它。例如3600将显示为“01:00:00”或“1小时”或其他内容。我可以用time_ago_in_words(Time.zone.now+3600)来做到这一点,但这感觉有点像hack,没有理由只是为了格式化而从当前时间中添加/减去这个值。是否有duration_in_words()之类的东西?谢谢 最佳答案 总结:假设total_seconds=3600选项1:distance_of_time_in_words(

ruby-on-rails - ruby rails : How do you add add zeros in front of a number if it's under 10?

我想像这样将一位数转换为两位数:9==>095==>0512==124==>04我认为我可以放置一堆if-else语句(如果数字小于10,则执行gsub)但我认为那是可怕的编码。我知道Rails有number_with_precision但我发现它只适用于十进制数。关于如何将个位数转换为两位数有什么想法吗? 最佳答案 很多人使用sprintf(这是正确的做法),我认为如果你想对字符串执行此操作,最好保留注意rjust和ljust方法:"4".rjust(2,'0')这将使“4”右对齐,方法是确保它至少有2个字符长,并用“0”填充它。

ruby 1.9 : invalid byte sequence in UTF-8

我正在用Ruby(1.9)编写一个爬虫程序,它使用来自大量随机站点的大量HTML。在尝试提取链接时,我决定只使用.scan(/href="(.*?)"/i)而不是nokogiri/hpricot(主要加速)。问题是我现在收到很多“UTF-8中的无效字节序列”错误。据我了解,net/http库没有任何特定于编码的选项,而且进来的东西基本上没有正确标记。实际处理传入数据的最佳方式是什么?我尝试使用.encode设置替换和无效选项,但到目前为止没有成功... 最佳答案 在Ruby1.9.3中,可以使用String.encode来“忽略”无

ruby - 如何解决 "You need to have Ruby and Sass installed and in your PATH for this task to work"警告?

我正在为工作设置一台新Mac。我已经在全局范围内安装了Grunt&GruntCLI。然后我在项目文件夹中执行了npminstall以安装所有依赖项。到目前为止没有问题,但是当我尝试运行sass:dist任务时,我收到了这个警告:Warning:YouneedtohaveRubyandSassinstalledandinyourPATHforthistasktowork.Moreinfo:https://github.com/gruntjs/grunt-contrib-sassUse--forcetocontinue.据我了解,我需要在更全局的级别上安装Ruby和Sass才能运行此任务。

ruby-on-rails - rails 4 : assets not loading in production

我正在尝试将我的应用程序投入生产,但图像和CSSAssets路径无法正常工作。这是我目前正在做的事情:图片资源位于/app/assets/images/image.jpg样式表位于/app/assets/stylesheets/style.css在我的布局中,我引用了这样的css文件:true%>在重新启动unicorn之前,我运行RAILS_ENV=productionbundleexecrakeassets:precompile它成功了,我在public/assets中看到了指纹文件目录。当我浏览我的网站时,我收到mysite.com/stylesheets/styles.css的

ruby-on-rails - ruby /rails : converting a Date to a UNIX timestamp

我如何从Rails应用程序中的日期对象获取UNIX时间戳(自格林威治标准时间1970年以来的秒数)?我知道Time#to_i会返回一个时间戳,但是执行Date#to_time然后获取时间戳会导致大约一个月(不知道为什么。..).感谢任何帮助,谢谢!编辑:好的,我想我明白了——我在一个循环中多次处理一个日期,每次由于时区不匹配,日期都会稍微移动一点,最终导致我的时间戳延迟一个月.尽管如此,我还是很想知道是否有任何方法可以在不依赖Date#to_time的情况下执行此操作。 最佳答案 代码date.to_time.to_i应该可以正常工

ruby - 如何使用条件运算符 (?:) in Ruby?

Ruby中的条件运算符(?:)是如何使用的?例如,这是正确的吗?20?question.question.slice(0,20)+"...":question.question%> 最佳答案 它是ternaryoperator,它像在C中一样工作(不需要括号)。它的作用类似于:if_this_is_a_true_value?then_the_result_is_this:else_it_is_this但是,在Ruby中,if也是一个表达式,所以:ifathenbelsecend===a?b:c,优先级问题除外。都是表达式。例子:pu