Tag: ruby

Post.all.map(&:id)是什么意思?

可能重复: 在Ruby中map(&:name)是什么意思? Post.all.map(&:id) 将返回 => [1, 2, 3, 4, 5, 6, 7, …………….] map(&:id)是什么意思? 尤其是& 。

如何使用RSpectesting渲染部分

我想根据一些条件testing渲染一个特定的部分。 例如,在模型显示动作视图show.html.erb我有: <% if condition1 %> <%= render :partial => "partial1" %> <% else %> <%= render :partial => "partial1" %> <% end %> 我试过了: response.should render_template("partial_name") 但它告诉它呈现“显示”模板 期望<“partial1”>但使用<“model / show,layouts / application”>进行渲染 我做错了什么?

Ruby的File.open给出“没有这样的文件或目录 – text.txt(Errno :: ENOENT)”错误

我在Win 7上安装了Ruby 1.9.2。 创build了一个简单的analyzer.rb文件。 它有这一行: File.open("text.txt").each {|line| puts line} 当我运行代码时,它给了我这个错误: analyzer.rb:1:in `initialize': No such file or directory – text.txt (Errno::ENOENT) from analyzer.rb:1:in `open' from analyzer.rb:1:in `<main>' Exit code: 1 我不明白。 在analyzer.rb文件的同一目录下有一个text.txt文件。 我也尝试喂养文件的绝对path, C:\Ruby192\text.txt ,但没有骰子。 我错过了什么?

如何创build锚点并将其redirect到Ruby on Rails中的特定锚点

我试图为我的博客上的每一个评论创build独特的锚点,以便一个人可以采取一个锚点的url,并将其粘贴到浏览器,它会自动加载页面,并向下滚动到他们的评论开始的页面。 也许我正在做这个错误的方式,但我已经尝试过这是无济于事。 注释视图 – 失败1 – 当粘贴在浏览器中时,此链接不会向下滚动到所需的位置 <%= link_to '#', :controller => 'posts', :action => 'show', :id => comment.post, :anchor => 'comment_' << comment.id.to_s %> 评论控制器 – 失败2 – 在浏览器中正确的url,但没有滚动发生,它只是停留在页面的顶部 redirect_to :controller => 'posts', :action => 'show', :id => @post, :anchor => 'comment_' + @comment.id.to_s 如果有人能帮助我会很感激:) 更新:下面的解决scheme几乎工作,但是我拿出下面的url,如果我点击它不滚动到。 #ie http:// localhost:3000 / posts / please-work

复制一个文件,在Ruby中根据需要创build目录

假设我在/source.txt有一个文件,我想把它复制到/a/b/c.txt 。 /a和/a/b可能存在也可能不存在。 有没有办法复制文件,并在必要时创build必要的父目录? 理想情况下,这将是一个命令。 特别是,我想避免parsing目标path的文件/目录部分,然后手动调用FileUtils.mkdir_p和FileUtils.cp 。 纯Ruby是首选,但依赖于Rails的解决scheme是可以接受的。

Ruby – 将块传递给方法

我正在尝试使用Highline gem来执行Ruby密码input,并且由于我有用户input密码两次,所以我想消除我传入的块上的重复。例如,简单版本的I现在正在做的是: new_pass = ask("Enter your new password: ") { |prompt| prompt.echo = false } verify_pass = ask("Enter again to verify: ") { |prompt| prompt.echo = false } 而我想改变它是这样的: foo = Proc.new { |prompt| prompt.echo = false } new_pass = ask("Enter your new password: ") foo verify_pass = ask("Enter again to verify: ") foo 其中不幸的是不工作。 […]

如何在Ruby中拯救eval?

我试图找出如何解决在Ruby 1.8.6中使用eval()代码时出现的语法错误。 我期望以下的Ruby代码: #!/usr/bin/ruby good_str = "(1+1)" bad_str = "(1+1" # syntax error: missing closing paren begin puts eval(good_str) puts eval(bad_str) rescue => exc puts "RESCUED!" end 运行时产生以下结果: 2 RESCUED! 相反,我得到的是: 2 eval_rescue.rb:8: (eval):1: compile error (SyntaxError) (eval):1: syntax error, unexpected $end, expecting ')' 看来由eval方法引发的SyntaxError正在被eval内的某个地方救起,而没有给我一个自己处理的机会。 任何人都有任何想法如何得到我想要的行为(即,我的'救援'条款从'评估'错误)?

从github克隆项目。 heroku不起作用

我从github克隆了一个项目到我的桌面。 我曾经在它上面工作,形成我的笔记本电脑。 然而,在笔记本电脑上,heroku似乎不适用于这个应用程序eventhough,但我已经安装。 第一个问题: heroku open >No app specified. >Run this command from app folder or set it adding –app <app name> 我没有在我的笔记本电脑上指定–app 。 因为我猜我的命令是在lapop上最初heroku create的。 第二个Probelm: git push heroku master 给出错误 fatal: 'heroku' does not appear to be a git repository fatal: The remote end hung up unexpectedly 和heroku list 说 ! This version […]

有没有相当于PHP的isset()的Rails?

基本上只是一个检查,以确保url参数设置。 我该怎么做在PHP中: if(isset($_POST['foo']) && isset($_POST['bar'])){} RoR中的这个粗糙/最好等价于isset()吗? if(!params['foo'].nil? && !params['bar'].nil?) end

after_commit为一个属性

我在我的应用程序中使用after_commit。 我希望它只能在我的模型中更新特定的字段时触发。 任何人都知道如何做到这一点?