Tag: ruby on rails 5

Belongs_to在Rails 5中的存在不起作用

据我所知,Rails 5中的新默认值要求belongs_to关联存在。 我用这个关联建立了一个模型,但问题是当关联字段为空时我没有得到状态validation错误。 相反,我得到一个数据库Null Validation错误,因为我将_id列设置为null。 (PG :: NotNullViolation因为我使用Postgres) 这种行为是否正常? 我的意思是我不应该只得到rails错误? 顺便说一句,当我为该字段添加状态validation时,它按预期工作。

require_tree参数必须是Rails 5升级应用程序中的目录

我刚刚将我的应用程序从Rails 4.2.7升级到Rails 5.0.0.1 。 我使用RailsDiff来确保我已经覆盖了所有内容,我相信我做到了。 到目前为止,一切都运行良好,直到加载我的应用程序。 现在我看到了这个错误: Sprockets::ArgumentError at / require_tree argument must be a directory 这是我的application.css : /* * This is a manifest file that’ll be compiled into application.css, which will include all the files * listed below. * * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets, * or any plugin’s […]

是否还需要使用Rails系统规范的DatabaseCleaner?

从我所读到的有关Rails 5.1新系统规范的所有内容中,我的理解是Rails现在在内部处理数据库事务。 来自Rspec的博客 :“[之前]您的测试和您测试的代码无法共享数据库事务,因此您无法使用RSpec的内置机制来回滚数据库更改,而是需要像数据库更清洁的gem。通过系统测试,Rails团队已经做了艰苦的工作以确保不是这种情况,因此您可以安全地使用RSpec的机制,而无需额外的gem。“ 我的经历不同: 升级到Rails 5.1后,我的Rspecfunction测试全部通过。 我将’function’规格重命名为’系统’规格。 所有测试都通过了 我删除了Database Cleaner gem,并删除了rails_helper.rb所有引用。 由于validates uniqueness错误,JS测试现在失败了。 非JS测试通过。 我的测试非常简单。 let(:subject) { page } let(:user) { create :user, name: “TestUser” } it “displays the user page”, :js do visit user_path(user) it is_expected.to have_content “TestUser” end 禁用数据库清除程序并且:js => true我得到user named TestUser already exists 。 使用:js => false ,测试通过。 系统测试和rspec的当前情况如何? Rails是否在内部处理数据库事务,还是仍需要数据库清理程序? […]

raails 5.1中的form_with搜索字段

在Rails 5.1中,所有表单都必须使用form_with完成。 在http://edgeguides.rubyonrails.org/5_1_release_notes.html#unification-of-form-for-and-form-tag-into-form-with中,我只能找到与模型相关的表格示例。 使用form_with在Rails 5.1中完成此Rails 5.0表单的正确方法是什么?

导轨c不在导轨5中工作

在rails 5应用程序内的终端中使用命令 rails c 抛出的错误如下所示。 我不知道这在类似的问题中意味着什么,解决方案是使用弹簧停止。 我也试过了,但没有它仍然给出同样的错误。 如果有人能指出这里的错误,那就太好了。 Running via Spring preloader in process 6457 /Users/AmanChawla/.rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `require’: dlopen(/Users/AmanChawla/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/x86_64-darwin15/readline.bundle, 9): Library not loaded: /usr/local/opt/readline/lib/libreadline.6.dylib (LoadError) Referenced from: /Users/AmanChawla/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/x86_64-darwin15/readline.bundle Reason: image not found – /Users/AmanChawla/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/x86_64-darwin15/readline.bundle from /Users/AmanChawla/.rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `block in require’ from /Users/AmanChawla/.rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:259:in `load_dependency’ from /Users/AmanChawla/.rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `require’ from /Users/AmanChawla/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/irb/completion.rb:10:in `’ from /Users/AmanChawla/.rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `require’ from /Users/AmanChawla/.rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:293:in `block in require’ […]

如何将Rails 5 API应用程序转换为可以充当API和应用程序的rails应用程序?

我最初使用–api标签在rails 5中创建它。 来自http://edgeguides.rubyonrails.org/api_app.html , 我删除了config.api_only = true 我变了 class ApplicationController < ActionController::API end 至 class ApplicationController < ActionController::Base end 我现在遇到的问题是视图被渲染,例如。 welcome/index.html.erb ,相应的CSS文件assets/stylesheets/welcome.css.scss不是。 知道如何解决这个问题,或者更一般地将API应用程序转换为完整的应用程序? 谢谢!

Capybara没有使用action_cable

我正在使用带有动作电缆的Rails 5 beta 3,这种集成在开发中运行良好,但是当我尝试通过capybara运行function测试时,它似乎没有达到通道操作。 我正在使用Portergeist并将puma配置为capybara的服务器。 我也在使用es5-shim和es6-shim。 有没有其他人经历过这个或知道任何解决方法? 谢谢! 编辑 我正在使用这个水豚分支来配置Capybara中的Puma Capybara.register_server :puma do |app, port, host| require ‘puma’ Puma::Server.new(app).tap do |s| s.add_tcp_listener host, port end.run.join end 我没有在config.action_cable.allowed_request_origins上设置任何内容

Rails服务器看不到代码更改和重新加载文件

我注意到我的rails服务器在更改后没有重新加载控制器,模型和可能的任何其他文件。 我使用Vagrant和Rails API,我发现有些人通过在Vagrantfile添加以下行来解决这个问题。 config.vm.provider “virtualbox” do |vb| vb.customize [ “guestproperty”, “set”, :id, “/VirtualBox/GuestAdd/VBoxService/–timesync-set-threshold”, 5000 ] end 它不能解决我的问题。 我没想到我还能做些什么来解决这个问题。 我附上可能对您有用的文件。 我的Gemfile看起来像这样: source ‘https://rubygems.org’ gem ‘rake’, ‘= 5.0.0.beta3’, ‘= 0.3.18’, ‘ 0.18’ gem ‘active_model_serializers’ gem ‘rspec-its’ gem ‘database_cleaner’ # Use Puma as the app server gem ‘puma’ # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder # […]

在多台笔记本电脑上运行相同的Rails代码,并将所有数据库中的数据保存到同一个数据库中

我试图在localhost:3000上的多台笔记本电脑上运行相同的rails代码。 如何保存从不同笔记本电脑提交的数据以保存在单个数据库中。 或者,他们将共享相同的数据库,如果有人提交了数据,它将自动在其他人的笔记本电脑上。 还要考虑不会有任何互联网连接,但我们可以用以太网电缆连接它们。 另外,我们使用的是sqllite3。 谢谢!

从iOS应用程序连接到ActionCable

我整天都被困在这一天。 我有David Heinemeier Hansson非常简单的ActionCable示例应用程序(聊天应用程序)正常工作( https://www.youtube.com/watch?v=n0WUjGkDFS0 )。 我试图用iPhone应用程序点击websocket连接。 当我连接到ws://localhost:3000/cable时,我能够收到ping,但我不太确定如何从javascript上下文之外订阅频道。