Tag: ruby on rails 4

在Rails 4中使用强参数的值白名单

是否可以使用强参数来确保使用可能值的白名单过滤属性? 例如,我有一个参数年龄,我想确保只能有这个值[10,20,30,40,50]。 是否可以使用强参数逻辑来确保? 谢谢

如何在启动Rails控制台时自动运行代码?

假设每次Rails控制台出现时我都想要问候: Scotts-MBP-4:ucode scott$ rails c Loading development environment (Rails 4.2.1) Hello there! I’m a custom greeting 2.1.5 :001 > 在哪里我会把puts ‘Hello there! I\’ma custom greeting’ puts ‘Hello there! I\’ma custom greeting’吗? 另一个Stackoverflow回答建议,我也在其他地方读过这个,我可以把它放在这样的初始化器中: # config/initializers/console_greeting.rb if defined?(Rails::Console) puts ‘Hello there! I\’ma custom greeting’ end 虽然这对我不起作用:(。即使没有if defined?(Rails::Console)我仍然没有输出。看起来像我进入控制台时初始化器没有运行,尽管其他人建议。

Rails,heroku在不同磁盘上安装puma会出错

我在heroku上创建了免费帐户。 现在我正在尝试这个开始 。 我的DevKit Ruby和openssl放在我的D:\磁盘里面, not C:\ ,因为我有理由不能使用C:\ disk。 所有文件目录都放在我的路径中。 我试过通过这种方法安装puma gem,唯一的例外是磁盘名称是D:\ 。 当我运行gem install puma — –with-opt-dir=D:\openssl它会抛出一个很长的错误: D:\>gem install puma — –with-opt-dir=D:\openssl Building native extensions with: ‘–with-opt-dir=D:\openssl’ This could take a while… ERROR: Error installing puma: ERROR: Failed to build gem native extension. D:/Ruby21-x64/bin/ruby.exe -r ./siteconf20150406-5096-1vz5x1.rb extconf.rb – -with-opt-dir=D:\openssl checking for BIO_read() in -lcrypto… […]

如果URL包含字符串?

我如何使用条件来做一件事:name被传递给_form而另一件事如果:name没有传递? 用:name传递: Started GET “/inspirations/new?inspiration%5Bname%5D=Always+trust+yourself+more+than+you+doubt+yourself” for 127.0.0.1 at 2016-11-08 01:00:44 -0500 Processing by InspirationsController#new as HTML Parameters: {“inspiration”=>{“name”=>”Always trust yourself more than you doubt yourself”}} 没有:name传递: Started GET “/inspirations/new” for 127.0.0.1 at 2016-11-08 01:16:18 -0500 Processing by InspirationsController#new as */* User Load (0.3ms) SELECT “users”.* FROM “users” WHERE “users”.”id” = $1 LIMIT 1 [[“id”, 1]] […]

Rails:找出哪个文件导致Sass :: SyntaxErrorexception?

当我跑: rake assets:precompile RAILS_ENV=production –trace 我得到以下exception: rake aborted! Sass::SyntaxError: Invalid CSS after ” */”: expected “}”, was “” (sass):19419 /Users/fernando/.rvm/gems/ruby-2.3.0/gems/sass-3.4.21/lib/sass/scss/parser.rb:1179:in `expected’ /Users/fernando/.rvm/gems/ruby-2.3.0/gems/sass-3.4.21/lib/sass/scss/parser.rb:1115:in `expected’ /Users/fernando/.rvm/gems/ruby-2.3.0/gems/sass-3.4.21/lib/sass/scss/parser.rb:1110:in `tok!’ /Users/fernando/.rvm/gems/ruby-2.3.0/gems/sass-3.4.21/lib/sass/scss/parser.rb:656:in `block’ /Users/fernando/.rvm/gems/ruby-2.3.0/gems/sass-3.4.21/lib/sass/scss/parser.rb:647:in `ruleset’ /Users/fernando/.rvm/gems/ruby-2.3.0/gems/sass-3.4.21/lib/sass/scss/parser.rb:673:in `block_child’ /Users/fernando/.rvm/gems/ruby-2.3.0/gems/sass-3.4.21/lib/sass/scss/parser.rb:666:in `block_contents’ /Users/fernando/.rvm/gems/ruby-2.3.0/gems/sass-3.4.21/lib/sass/scss/parser.rb:123:in `stylesheet’ /Users/fernando/.rvm/gems/ruby-2.3.0/gems/sass-3.4.21/lib/sass/scss/parser.rb:39:in `parse’ /Users/fernando/.rvm/gems/ruby-2.3.0/gems/sass-3.4.21/lib/sass/engine.rb:403:in `_to_tree’ /Users/fernando/.rvm/gems/ruby-2.3.0/gems/sass-3.4.21/lib/sass/engine.rb:278:in `render’ /Users/fernando/.rvm/gems/ruby-2.3.0/gems/sprockets-3.5.2/lib/sprockets/sass_compressor.rb:48:in `call’ /Users/fernando/.rvm/gems/ruby-2.3.0/gems/sprockets-3.5.2/lib/sprockets/sass_compressor.rb:28:in `call’ /Users/fernando/.rvm/gems/ruby-2.3.0/gems/sprockets-3.5.2/lib/sprockets/processor_utils.rb:75:in `call_processor’ /Users/fernando/.rvm/gems/ruby-2.3.0/gems/sprockets-3.5.2/lib/sprockets/processor_utils.rb:57:in `block in call_processors’ /Users/fernando/.rvm/gems/ruby-2.3.0/gems/sprockets-3.5.2/lib/sprockets/processor_utils.rb:56:in `reverse_each’ /Users/fernando/.rvm/gems/ruby-2.3.0/gems/sprockets-3.5.2/lib/sprockets/processor_utils.rb:56:in `call_processors’ […]

耙子流产了! ArgumentError:相同的文件:

当我尝试在cloud66上部署我的rails应用程序时,我收到此错误: rake aborted! ArgumentError: same file: /var/deploy/website/web_head/releases/20150315170454/public/assets/tinymce/custom_content.css and /var/deploy/website/web_head/releases/20150315170454/public/assets/tinymce/custom_content.css Tasks: TOP => assets:precompile 有人可以解释为什么我会收到此错误? 怎么解决?

未定义的方法`wikis_path’

我在让我的create方法正常运行时遇到问题。 这是我的new.html.erb文件 Private Topic 调节器 def new @wiki = Wiki.new end def create @wiki = Wiki.create(params[:wiki]) if @wiki.save flash[:notice] = “Wiki has been saved” redirect_to wiki_index_path end end private def wiki_params params.require(:wiki).permit(:title, :body, :private) end routes.rb Rails.application.routes.draw do devise_for :users resources :wiki post ‘wiki/new’ post ‘wiki/create’ resources :users root ‘welcome#index’ end 如果我在new.html.erb的form_for中使用:wiki我可以通过错误但是当点击实际新页面上的保存按钮时,根本没有任何事情发生(因为我没有将信息保存到正确的变量)。 但是,只要我使用@wiki变量,就会收到错误 “undefined method […]

奇怪的问题has_many通过更新Rails中的关联

我从Ruby 2.1.2更新到Ruby 2.2.0并更新了链接到它的所有gem。 我有几个模型在彼此之间相互联系 class Question < ActiveRecord::Base belongs_to :course_version has_one :course, through: :course_version has_many :answer_questions has_many :answers, through: :answer_questions end class AnswerQuestion < ActiveRecord::Base belongs_to :answer belongs_to :question end class Answer < ActiveRecord::Base has_many :answer_questions has_many :questions, through: :answer_questions end 如您所知,我们有问题可以得到答案并通过answer_questions来了解他们得到了什么。 在我更新Ruby之前,它工作得很好。 现在我做的事情…… my_question.answers << my_answer 它确实爆炸了 NoMethodError: undefined method `name’ for nil:NilClass /Users/Loschcode/.rvm/gems/ruby-2.2.0/gems/activerecord-4.0.0/lib/active_record/associations/has_many_association.rb:80:in […]

活动记录按ID排序

如果我有id的记录:1,2,3,4并且想要以某种方式对它们进行排序,比如1,4,4,3,我该怎么办呢? 我认为这样的事情,但它当然不起作用。 Service.all.order(id: [1, 4, 2, 3])

Rails 4按虚拟属性排序

我有一个Product模型,它在数据库中有name和description列。 我还有一个Product.search_results_for(query) ,其中query是一个像”Green Apple”这样的字符串。 我需要返回一个ActiveRecord::Relation ,其中排序的结果是最佳命中。 目前,我正在为每个产品设置search_result_value 。 search_result_value不是数据库中的列,我不希望它成为。 所以从本质上讲,我有一个ActiveRecord::Relation Products of Products ,我需要通过search_result_value来订购而不将其更改为数组,这是一个未存储在数据库中的实例变量。 我怎样才能做到这一点? 像这样的东西: Product.order(:search_result_value)