我正在玩Rails 4.xtesting版,并尝试使用carrierwave来获取嵌套属性。 不知道我在做什么是正确的方向。 经过四周search,然后最终看到了轨道来源和强大的参数,我发现下面的笔记。 # Note that if you use +permit+ in a key that points to a hash, # it won't allow all the hash. You also need to specify which # attributes inside the hash should be whitelisted. https://github.com/rails/rails/blob/master/actionpack/lib/action_controller/metal/strong_parameters.rb 所以它说你必须指定每一个单一的属性,我试着以下几点: 帕拉姆的例子: {"utf8"=>"✓", "authenticity_token"=>"Tm54+v9DYdBtWJ7qPERWzdEBkWnDQfuAQrfT9UE8VD=", "screenshot"=>{ "title"=>"afs", "assets_attributes"=>{ "0"=>{ "filename"=>#<ActionDispatch::Http::UploadedFile:0x00000004edbe40 @tempfile=#<File:/tmp/RackMultipart20130123-18328-navggd>, @original_filename="EK000005.JPG", @content_type="image/jpeg", @headers="Content-Disposition: form-data; […]
有一个奇怪的问题,需要帮助。 我试图在生产服务器上启动一个rails控制台,它的行为就像rails c命令不存在一样。 FWIW,我已经做了4年的rails开发人员,并且一直在大量的其他服务器上完成这个任务。 在这个服务器上,我可以放下,创build,迁移,播种数据库没有问题(使用RAILS_ENV =生产),而且应用程序正常工作没有任何问题。 build立: Ubuntu 14.04(racksapce第二代性能1服务器) 带有Passenger的Nginx(我通常使用Unicorn,但从来没有任何与Passenger部署的应用程序有问题) Ruby 2.1.5(使用rvm) Rails 4.1.7 Postgres的 Capistrano 3(使用rvm,迁移,资产预编译等扩展) 我试过了: cd进入app目录: cd /home/deployer/app_name/current 其中加载.rvmrc,并显示我在正确的gemset,运行捆绑只是踢。 rails c production # (which usually works no problem) bundle exec rails c production # (sometimes have to do this on older apps that do not have the newer capistrano 3 and rvm […]
我是Rails 4的新手,并不明白在Rails 4中config/secrets.yml secret_key_base下的secret_key_base的用法。你能解释一下这个概念吗? 另外,当我在生产环境中工作时,系统会提示secret_key使用devise.rb , config.secret_key和secret_key_base 。 但是,我可以使用rake secret命令生成一个新的机密。 开发和生产环境有什么区别? 当我每次生成secret_key时,它是如何与新生成的secret_key匹配的? 它如何保护与其他服务器的应用程序?
操作系统:Arch Linux,Rails版本:4,RubyMine:6.3 当我从工具运行一个规格 – 运行Rake任务 – 规范我总是得到这个错误: /home/chylli/.rvm/gems/ruby-2.1.2@rails4/gems/rspec-core-3.0.2/lib/rspec/core/configuration.rb:1024:in`require':无法加载这样的文件 – – teamcity / spec / runner / formatter / teamcity / formatter(LoadError) 但运行“debugging规范:模型”是可以的。 我试过的:我在运行编辑configuration下添加了“ruby arguments” -I $ RUBYMINE_HOME / rb / testing / patch / bdd -I $ RUBYMINE_HOME / rb / testing / patch / common 但它不起作用。
我在我的模型中有一个数组字段,我试图更新它。 我强有力的参数方法如下 def post_params params["post"]["categories"] = params["post"]["categories"].split(",") params.require(:post).permit(:name, :email, :categories) end 我在我的控制器中的行为如下 def update post = Post.find(params[:id] if post and post.update_attributes(post_params) redirect_to root_url else redirect_to posts_url end end 然而,每当我提交更新的post,在我的发展日志中我看到 Unpermitted parameters: categories 通过的参数是 Parameters: {"utf8"=>"✓", "authenticity_token"=>"auth token", "id"=>"10", "post"=>{"name"=>"Toni Mitchell", "email"=>"eileen_hansen@hayetokes.info", "categories"=>",2"}} 我想这与事实有关,因为一切看起来都很好,属性categories是一个数组。 再一次,我可能是错的。 那么,我的代码出了什么问题?为什么在明确允许的情况下不让我保存类别字段呢? 谢谢。
我想知道如何在运行简单testing时closures所有这些警告: [1] guard(main)> 16:59:46 – INFO – Run all 16:59:46 – INFO – Running all specs /Users/esjd/.rvm/gems/ruby-2.1.2/gems/rspec-rails-3.0.1/lib/rspec/rails/adapters.rb:124: warning: instance variable @example not initialized /Users/esjd/.rvm/gems/ruby-2.1.2/gems/rspec-rails-3.0.1/lib/rspec/rails/adapters.rb:124: warning: instance variable @example not initialized .* Pending: HomeHelper add some examples to (or delete) /Users/esjd/ruby/rails/ts3/spec/helpers/home_helper_spec.rb # Not yet implemented # ./spec/helpers/home_helper_spec.rb:14 Finished in 0.03601 seconds (files took 7 minutes 48 […]
当我遇到一些真实性令牌问题时,我正在研究一个新的Rails 4应用程序(在Ruby 2.0.0-p0上)。 在编写一个响应json的控制器时(使用respond_to类方法),当我尝试使用curl创buildlogging时,我得到了create操作,我开始获取ActionController::InvalidAuthenticityTokenexception。 我确定我设置了-H "Content-Type: application/json" ,我用-d "<my data here>"设置了数据,但仍然没有运气。 我尝试使用Rails 3.2编写相同的控制器(在Ruby 1.9.3上),并且我没有任何真实性令牌问题。 我search了四周,我发现Rails 4中的真实性令牌发生了一些变化。据我所知,它们不再自动插入到表单中了吗? 我想这是以某种方式影响非HTML内容types。 有没有什么办法可以解决这个问题,而不需要请求一个HTML表单,抢走真实性标记,然后用这个标记做出另一个请求? 还是我完全错过了一些完全明显的东西? 编辑:我只是尝试在一个新的Rails 4应用程序创build一个新的logging使用脚手架而不改变任何东西,我遇到了同样的问题,所以我想这不是我做的。
我有以下错误: ActionController::RoutingError (No route matches [GET] "http://img.dovov.comfavicon.ico") 我想显示错误404页面的链接不存在。 我怎样才能做到这一点?