Tag: ruby on rails 3.2

使用Rails在视图中打印有效的,非转义的JSON

我已经尝试了一切。 每个组合的助手raw , html_safe to_json包括对::JSON.encode和CGI.unescape一些尝试。 问题在于,无论我做什么,我都无法在视图中打印格式良好的JSON。 它始终是HTML转义的。 这是我视图中的代码: var campaignData; 在我的情况下,它始终是被引用的引号“。我只是在引号上做一个gsub,但这对于IMO应该是一个非常简单,记录良好的用例来说是一个可怕的解决方案。

在Rails <4中为Postgres JSON列设置默认值

所以我开始使用Postgres JSON数据类型,现在你可以用它做很多有趣的事情 。 在我的一个Rails应用程序中还没有Rails 4( 已经添加了对Postgres JSON的支持 ),我添加了一个这样的JSON列: create_table :foo do |t| t.column :bar, :json end 但我无法弄清楚如何为列设置默认值。 我尝试了所有变体,如{} , ‘{}’ , ‘{}’::json , ‘[]’::json等。但我在迁移运行时遇到错误或者它根本不起作用,这意味着迁移运行但是,当我创建一个新的Foo , bar是nil 。

git push >>致命:没有配置推送目的地

我还在浏览一些关于RoR的指南,我在这里部署演示应用程序 我按照说明: 完成Microposts资源后,现在是将存储库推送到GitHub的好时机: $ git add . $ git commit -a -m “Done with the demo app” $ git push 这里发生了什么错误的是推动部分……它输出了这个: $ git push fatal: No configured push destination. Either specify the URL from the command-line or configure a remote repository using git remote add git push 所以我尝试按照说明执行此命令: $ git remote add demo_app ‘www.github.com/levelone/demo_app’ fatal: […]

Rails – 在使用部分或特定控制器视图时覆盖页面元素

有没有办法在rails视图中追加或覆盖页面元素? 假设我有一些东西我只想包含在特定视图的 ,我使用application.html.erb来渲染其余的视图。 在这种情况下,我不想丢弃application.html.erb ,而只是将其附加到一个特定页面的head元素,而不是其他任何内容。

供应商/捆绑的目的是什么? Heroku告诉我要删除它

在向Heroku推送一些更改后,我注意到有关vendor/bundle 警告 (请参阅下面的警告 )。 如果根据警告它应该从Git跟踪中“删除”,这个目录的目的是什么? 为什么vendor/bundle没有自动.gitignore默认为Rails? 我应该运行bundle pack吗? (它实际上是bundle package ??) bundle pack的优缺点是什么(相对于development和production )? 为了让这更令人困惑,Ryan McGeary的热门博客post名为“Vendor Everything”,仍然适用于运行bundle install –path vendor和echo ‘vendor/ruby’ >> .gitignore和包装gem通过运行bundle package vendor/cache 。 任何与我的其他关注相关的光线都将不胜感激。 谢谢。 -bash> git push production master … —–> Heroku receiving push —–> Ruby/Rails app detected —–> WARNING: Removing `vendor/bundle`. Checking in `vendor/bundle` is not supported. Please remove this […]

如何在不运行Rails中的回调的情况下保存模型

我需要在Rails中保存模型时计算值。 所以我将calculate_averages称为Survey类的回调: before_save :calculate_averages 但是,偶尔(最初我有10k记录需要此操作)我需要手动更新每条记录的所有平均值。 没问题,我有以下代码: Survey.all.each do |survey| survey.some_average = (survey.some_value + survey.some_other_value) / 2.to_f #and some more averages… survey.save! end 在运行此代码之前,我担心calculate_averages会被调用并复制它,甚至可能会导致我正在做事的方式出现问题。 好吧,那么我想,好吧,我什么都不做,让calculate_averages被调用并做其事。 问题是,首先,即使您没有对记录进行任何更改,是否有办法强制回调被调用? 其次,计算平均值的方式更有效率,根本不让回调被调用,并一次性完成所有事件的平均值。 这可能不会让回调被调用吗?

是否有可能跳过Heroku上单个git推送的资产预编译步骤?

每次我将我的Rails 3.2项目部署到Heroku时, rake assets:precompile运行rake assets:precompile : $ git push heroku master … —-> Preparing app for Rails asset pipeline Running: rake assets:precompile Asset precompilation completed (189.17s) … 有时我想推动我知道不会改变任何资产,例如对控制器的快速修补程序。 是否有可能跳过资产:单个git推送到Heroku的预编译步骤? 谢谢。

错误,Ruby on Rails:在CoursesController编码:: UndefinedConversionError#attachment“\ xFF”从ASCII-8BIT到UTF-8

我想在Rails 3.2.8上使用tag_form创建一个简单的文件上传器。 但是当我尝试提交图像文件时,我收到一条错误消息 错误消息(当我尝试提交图像文件时) 在CoursesController#attachment中编码:: UndefinedConversionError “\ xFF”从ASCII-8BIT到UTF-8 如果你帮我解决这个问题,我会很感激的。 这是我的代码。 应用程序/视图/ show.html.erb ‘attachment’, :multipart => true) do %> 应用程序/控制器/ courses_controller.rb def attachment t = Time.now.strftime(“%Y%m%d%H%M%S”) uploaded_io = params[:file] File.open(Rails.root.join(‘public’, ‘upload’, uploaded_io.original_filename), ‘w’) do |file| file.write(uploaded_io.read) end end 配置/ routes.rb中 resources :courses, :only => [ :show ] do member do post :attachment end end

请求的资源上不存在“Access-Control-Allow-Origin”标头

我在AngularJS上使用omniauth-facebook并且CORS无法正常工作。 我的omniauth.rb是 Rails.application.config.middleware.use OmniAuth::Builder do provider :facebook,”xxxxx”, “xxxxx”, :scope => ’email,user_birthday,read_stream’, :display => ‘popup’ end 如果我将它用作rails应用程序和请求,一切正常。 但是当我尝试通过Angular JS调用’http:\ localhost:3000 \ users \ auth \ facebook“时 $http.get(‘/users/auth/facebook’).success(function(data, status, headers, config) { console.log(“back in success”); }). error(function(data, status, headers, config) { }); } 我在JS控制台中看到以下错误 XMLHttpRequest无法加载https://www.facebook.com/dialog/oauth?client_id=xxxx&display=popup … thday%2Cread_stream&state = 3352c1924bdbc9277f7b1070c38d67acf79b529f198323cb。 请求的资源上不存在“Access-Control-Allow-Origin”标头。 因此不允许’http://localhost:3000’访问。 (该控制台中的url未完全显示) 我添加了以下行 config.middleware.insert_before Warden::Manager, Rack::Cors 但这也行不通。 […]

如何在Ruby on Rails中创建一个catch-all路由?

我希望所有满足特定约束的请求都转到特定的控制器。 所以我需要一条全能的路线。 如何在Rails中指定? 这是这样的吗? match ‘*’, to: ‘subdomain_controller#show’, constraints: {subdomain: /.+\.users/} 这真的会抓住所有可能的路线吗? 即使有许多嵌套目录,重要的是没有任何漏洞。 使用Ruby on Rails 3.2,但准备升级到4.0。 更新 : ‘*path’似乎有效。 但是,我遇到的问题是只要文件存在于我的public目录中,Rails就会呈现它。