我正在创建一个 RoR-6 应用程序,并且从这一行的 application.html.erb 文件中抛出以下错误:
javascript_include_tag 'application', 'data-turbolinks-track': 'reload'
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
ActionView::Template::Error: The asset "application.js" is not present in the asset pipeline.
Run Code Online (Sandbox Code Playgroud)
该应用程序是通过运行创建的 rails new myapp -d postgres
我正在使用 Rails 6.0.0.rc1
使用 Rails 6(或 5.2)加密凭据,我在管理和解决文件中的合并冲突时遇到了困难credentials.yml.enc。正如文档中所述,目的是将加密凭据添加到源代码管理中(https://guides.rubyonrails.org/security.html#custom-credentials)
例如,
branch_a添加凭据service a并合并到 master
branch_b添加凭据service b并在变基时,文件中的冲突credentials.yml.enc如下所示:
<<<<<<< HEAD
sahdkajshdkajhsdkjahsdkjahsdkajhsdkjahsdkjahdskjahsdjkahsdencryptedstring-a09dpjmcas==
=======
laskdjalksjdlakjsdlaksjdlakjsdlaksjdlakjsdlajsdlkajsdlkjasdljalsdajsdencryptedstringrere=
>>>>>>> branch_b
Run Code Online (Sandbox Code Playgroud)
我可以查看每个分支上的未加密内容credentials.yml.enc并非常手动地解决冲突,但是是否有更好的方法来管理凭据以避免这些凭据冲突。
抱歉,如果之前已经回答过这个问题,但我找不到明确的答案。
当然有人在使用时遇到过这个问题,upsert您需要指定包括created_at和在内的每一列updated_at?
created_at当更新插入发生时如何不更新时间戳?我只想插入created_at一次。
a = User.upsert({
name: ....,
age: ....
created_at: DateTime.now,
updated_at: DateTime.now
}, unique_by: :upsert_user_index )
Run Code Online (Sandbox Code Playgroud) 我最近删除了我的本地项目,但做了一个 git clone 并从我上次提交的地方开始。当我尝试将图像上传到已配置的 AWS 时,出现以下错误:
Aws::Sigv4::Errors::MissingCredentialsError in RentalsController#create
Cannot load `Rails.config.active_storage.service`: missing credentials, provide credentials with one of the following options: - :access_key_id and :secret_access_key - :credentials - :credentials_provider
Run Code Online (Sandbox Code Playgroud)
我试图查看我的credentials.yml文件是否有任何错误,但是当我输入此命令时:
EDITOR="code --wait" rails credentials:edit
Run Code Online (Sandbox Code Playgroud)
...我收到此错误:
Couldn't decrypt config/credentials.yml.enc. Perhaps you passed the wrong key?
Run Code Online (Sandbox Code Playgroud)
可能是什么问题呢?
我正在尝试在我的项目中添加ruby-saml。但我对如何在我的场景中实现它有点困惑。我在一个网站上,比如说 abc.com,有一个按钮。当我单击该按钮时,我需要重定向到网站 xyz.com,在该网站中我需要传递 SAML XML 并将其发送到 xyz.com/SAML。SAML 请求将由 xyz.com 处理,然后他们将向我发送响应。谁能给我一些想法如何实现它?
另外,我对这些领域感到困惑。有人可以给我一个快速总结吗?
settings.assertion_consumer_service_urlsettings.sp_entity_idsettings.idp_entity_idsettings.idp_sso_service_urlsettings.idp_slo_service_url
def init
request = OneLogin::RubySaml::Authrequest.new
saml_settings.name_identifier_value_requested = "testuser@example.com"
saml_settings.name_identifier_format = "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
redirect_to(request.create(saml_settings))
end
def saml_settings
settings = OneLogin::RubySaml::Settings.new
settings.assertion_consumer_service_url = "http://#{request.host}/saml/consume"
settings.idp_sso_service_url = "https://app.onelogin.com/trust/saml2/http-post/sso/#{OneLoginAppId}"
settings.idp_sso_service_binding = "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" # or :post, :redirect
settings.idp_slo_service_binding = "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" # or :post, :redirect
settings.idp_cert_fingerprint = OneLoginAppCertFingerPrint
settings.idp_cert_fingerprint_algorithm = "http://www.w3.org/2000/09/xmldsig#sha1"
settings.name_identifier_format = "urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
# Optional for most SAML IdPs
settings.authn_context = "urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport"
# or as an array
settings.authn_context …Run Code Online (Sandbox Code Playgroud) 对于我新启动的 Rails 6 应用程序,我想要一组自定义字体。我的设置如下所示:
# app/assets/stylesheets/my-font.sass
@font-face
font-family: 'my-font'
src: url('fonts/my-font.eot') format('embedded-opentype'), url('fonts/my-font.woff') format('woff'), url('fonts/my-font.ttf') format('truetype'), url('fonts/my-font.svg#my-font') format('svg')
font-weight: 400
font-style: normal
Run Code Online (Sandbox Code Playgroud)
然后在app/assets/stylesheets/fonts我的 sass 文件中引用了所有 4 个文件。
我application.sass有以下导入:@import 'my-font'.
当我运行时rails assets:precompile,它还会将所有 4 个带有后缀版本(例如my-font-7384658374658237465837246587263458.eot)的文件放在public目录中。
但是,当我运行该应用程序时,浏览器正在根目录中查找名为 的文件,该文件my-font.eot当然不存在并且是 404。这对我来说绝对是一个配置问题,但我不知道在哪里。任何帮助将非常感激。
已经cocoon gem在Rails 4和Rails 5应用程序中用于嵌套表单。目前,我正在将rails 5.2应用程序之一(正在使用cocoon gem)更新为rails 6。
由于Rails 6使用的是webpacker,所以我厌倦了application.js像以前版本的rails一样要求文件中包含茧形javascript 。
app / javascript / application.js
//= require cocoon
Run Code Online (Sandbox Code Playgroud)
但是不幸的是,事情似乎没有用。也尝试过导入,但是由于茧不能作为javascript软件包使用,因此它当然也无法正常工作。
任何解决方案或替代方案?
如何在 Rails 6 环境中配置 Jasmine(其中 Webpack 替换了 Javascript 的资产管道),以便我可以测试我为我的应用程序编写的 Javascript 模块?
我安装了 jasmine gem,运行rails generate jasmine:install并编辑jasmine.yml以指向我的 Javascript 源代码和规范的位置。
问题是我不能使用导入/导出语句。(例如,试图加载我的第一模块向测试结果在此错误在Chrome: Uncaught SyntaxError: Unexpected token 'export')
据我所知,我需要设置 Jasmine 才能使用 babel;但是,我没有找到关于如何在新的 Rails 6 布局中执行此操作的说明。
我是 Rails 这个词的新手。使用 Rails 6 并遵循指南/教程。在官方 Rails 指南中,有 CoffeeScript 示例,甚至建议使用 CoffeeScript,请参阅:https : //guides.rubyonrails.org/working_with_javascript_in_rails.html#an-introduction-to-ajax(即使在边缘指南中:https: //edgeguides.rubyonrails.org/working_with_javascript_in_rails.html#an-introduction-to-ajax )。
作为一名经验丰富的 JavaScript 开发人员,我在过去三年中从未见过任何公司选择 CoffeeScript 作为他们的 JavaScript 工具。由于 CoffeeScript 的创新,JavaScript 得到了发展,对 CoffeeScript 的需求消失了。
现在为什么 Rails 仍然推荐它?我觉得它很可能会让 Rails 的新手感到困惑,因为对于大多数新开发人员来说,CoffeeScript 甚至不再是一个东西。如果您阅读有关 JavaScript 的内容,这是一堂很好的历史课,但仅此而已。
谢谢!
从控制台我无法执行任何涉及数据库的操作。我得到一个分段错误。
.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/pg-1.1.4/lib/pg.rb:56: [BUG] Segmentation fault at 0x0000000000000110
ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-darwin18]
它实际上是可能需要数据库的任何操作,包括 MyModel.new。
-- Control frame information -----------------------------------------------
c:0071 p:---- s:0406 e:000405 CFUNC :initialize
c:0070 p:---- s:0403 e:000402 CFUNC :new
c:0069 p:0016 s:0398 e:000397 METHOD /Users/xxx/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/pg-1.1.4/lib/pg.rb:56
c:0068 p:0107 s:0393 e:000392 METHOD /Users/xxx/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/activerecord-6.0.1/lib/active_record/connection_adapters/postgres
我已经卸载并重新安装了 pg gem。并重建了数据库。并重新启动 PostgreSQL。
我看到其他人在Puma下运行时报告问题,但我的配置在Puma下有效,在console下失败!
为清楚起见编辑:
是的,使用捆绑器。
使用相同的堆栈跟踪rails c或bundle exec rails c具有相同的效果(段错误)启动 rails 控制台。
Gemfile.lock 有 pg (1.1.4)
我重新捆绑,指定捆绑路径。堆栈跟踪现在具有该捆绑路径,因此我猜默认情况下捆绑程序使用的是 rbenv 路径。
ruby-on-rails-6 ×10
ruby ×3
amazon-s3 ×1
babeljs ×1
cocoon-gem ×1
coffeescript ×1
credentials ×1
es6-modules ×1
jasmine ×1
postgresql ×1
ruby-saml ×1
saml ×1