小编Sim*_*per的帖子

无法加载Rails.config.active_storage.service

我正在使用Active Storage设置新的Rails 5.2应用程序,并使用AWS托管生产中的图像。

但是,我在读取凭据时遇到问题:

2018-07-06T08:11:52.625415+00:00 app[web.1]: ! Unable to load application: Aws::Sigv4::Errors::MissingCredentialsError: Cannot load `Rails.config.active_storage.service`:
2018-07-06T08:11:52.625432+00:00 app[web.1]: missing credentials, provide credentials with one of the following options:
2018-07-06T08:11:52.625435+00:00 app[web.1]:   - :access_key_id and :secret_access_key
2018-07-06T08:11:52.625437+00:00 app[web.1]:   - :credentials
2018-07-06T08:11:52.625479+00:00 app[web.1]:   - :credentials_provider
Run Code Online (Sandbox Code Playgroud)

这是现有的S3存储桶,我为此应用创建了一个新用户。我对CORS等感到满意。

在S3FullAccess组下设置用户。

我已经通过修改了我应用程序中的凭据 $EDITOR="atom --wait" rails credentials:edit

文件内容:

aws:
  access_key_id: [my access key]
  secret_access_key: [my secrect key]

# Used as the base secret for all MessageVerifiers in Rails, including the one protecting cookies.
secret_key_base: [my secret key base]
Run Code Online (Sandbox Code Playgroud)

请注意,这是YAML格式的,我使用过一个空格,并且在键上使用了一个制表符,但这似乎没有什么不同。 …

ruby-on-rails amazon-s3 rails-activestorage ruby-on-rails-5.2

6
推荐指数
2
解决办法
5494
查看次数

Active Storage Rails 5.2的Blob错误

我刚刚升级了5.1.4。应用程式至5.2,并尝试将Paperclip换成ActiveStorage。在尝试使用图像更新现有记录时,出现以下错误:

无法自动加载常量ActiveStorage :: Blob :: Analyzable,需要/Users/Simon/.rvm/gems/ruby-2.4.0/gems/activestorage-5.2.0/app/models/active_storage/blob/analyzable.rb进行定义它

在我的模型中:

has_one_attached :pic
Run Code Online (Sandbox Code Playgroud)

在我的控制器中:

...

  def update
    respond_to do |format|
      if @gin.update(gin_params)
        format.html { redirect_to @gin, notice: 'Gin was successfully updated.' }
        format.json { render :show, status: :ok, location: @gin }
      else
        format.html { render :edit }
        format.json { render json: @gin.errors, status: :unprocessable_entity }
      end
    end
  end
Run Code Online (Sandbox Code Playgroud)

...

 def gin_params   params.require(:gin).permit(:name, :text, :snippet,
 :pic, :slug, :abv, distillery_attributes: [:id, :name], botanical_ids:
 []) end
Run Code Online (Sandbox Code Playgroud)

在storage.yml中:

   amazon:
    service: S3
    access_key_id: <%= Rails.application.credentials.dig(:aws, :access_key_id) %>
    secret_access_key: <%= …
Run Code Online (Sandbox Code Playgroud)

blob ruby-on-rails rails-activestorage

5
推荐指数
1
解决办法
4417
查看次数

Webpacker在manifest.json Heroku生产中找不到application.js

我在heroku上的应用程序遇到webpacker问题。

日志:

ActionView::Template::Error (Webpacker can't find application.js in /app/public/packs/manifest.json. Possible causes:
2018-07-04T18:47:08.192729+00:00 app[web.1]: 1. You want to set webpacker.yml value of compile to true for your environment
2018-07-04T18:47:08.192730+00:00 app[web.1]:    unless you are using the `webpack -w` or the webpack-dev-server.
2018-07-04T18:47:08.192733+00:00 app[web.1]: 2. webpack has not yet re-run to reflect updates.
2018-07-04T18:47:08.192734+00:00 app[web.1]: 3. You have misconfigured Webpacker's config/webpacker.yml file.
2018-07-04T18:47:08.192735+00:00 app[web.1]: 4. Your webpack configuration is not creating a manifest.
2018-07-04T18:47:08.192737+00:00 app[web.1]: Your manifest contains:
2018-07-04T18:47:08.192738+00:00 app[web.1]: {
2018-07-04T18:47:08.192740+00:00 app[web.1]: …
Run Code Online (Sandbox Code Playgroud)

heroku webpack

5
推荐指数
2
解决办法
6704
查看次数

LoadError (无法自动加载常量 Api::V1::UserTokenController) Knock Gem

由于这是一个全新的应用程序,我使用的是 Rails 6 测试版。

我正在尝试使用 Knock Gem,但是在尝试通过发布用户获得 API 响应时,我收到此错误:

LoadError(无法自动加载常量 Api::V1::UserTokenController,需要 /Users/Simon/Sites/TGD/ginbackend/app/controllers/api/v1/user_token_controller.rb 来定义它):

但是,我确实user_token_controller.rb在该位置有文件。我正在为我的 API 端点使用命名空间:

Rails.application.routes.draw do

  namespace :api do
    namespace :v1 do
      post 'user_token' => 'user_token#create' # <= manually placed this under the namespace
      resources :distilleries
      resources :botanicals
      resources :gins
      resources :botanicals_gins
    end
   end
end
Run Code Online (Sandbox Code Playgroud)

根据 Knock 文档,我还更新了我的application_controller.rb,请注意它位于app/controllers/并且不是app/controllers/api/v1 问题吗?

class ApplicationController < ActionController::API
    include Knock::Authenticable

    private

    def authenticate_v1_user
      authenticate_for V1::User
    end

end
Run Code Online (Sandbox Code Playgroud)

authentication ruby-on-rails ruby-on-rails-6

5
推荐指数
1
解决办法
781
查看次数

删除模型和表,以便可以在Rails中重新开始

我在项目开始时创建了一个注释模型,但现在我已经意识到我需要创建一些多态关系,所以我也可以使用其他一些模型的注释.考虑到我已经拥有的代码等,我认为我可能更容易从头开始,所以我可以以正确的方式为我的新多态世界构建所有视图/控制器等.

我知道我可以rails destroy model comments实现这个目标,但我有两个问题:

  1. 这会删除模型,迁移和实际的DB表吗?
  2. 当我想创建一个具有完全相同名称的新模型时会有什么影响?

ruby-on-rails models polymorphic-associations rails-migrations destroy

3
推荐指数
2
解决办法
6081
查看次数

使用Phoenix/Ecto显示数据库中的最后一条记录

这是一个基本问题,我无法在网上找到详细信息.

我有一个名为'Radios'的模型,我希望在我的主页上显示最后一个收音机 - templates/page/index.html.eex

到目前为止我所拥有的:

radio.ex

defmodule Radios.Radio do
  use Radios.Web, :model
  import Ecto.Query

  schema "radios" do
    field :name, :string
    field :desc, :string
    field :price, :integer
    field :text1, :string
    field :text2, :string
    field :text3, :string
    field :text4, :string
    field :mainimg, :string

    timestamps()
  end

  @doc """
  Builds a changeset based on the `struct` and `params`.
  """
  def changeset(struct, params \\ %{}) do
    struct
    |> cast(params, [:name, :desc, :price, :text1, :text2, :text3, :text4, :mainimg])
    |> validate_required([:name, :desc, :price, :text1, :text2, :mainimg])
  end …
Run Code Online (Sandbox Code Playgroud)

elixir ecto phoenix-framework

3
推荐指数
1
解决办法
756
查看次数

Travis 因 webpacker 问题 (Rspec) rails 5.2 而失败

我刚刚开始在我的 rails 5.2 应用程序中使用 RSpec 进行测试。我正在将我的应用程序部署到我的远程 Github 存储库,然后在部署到 Heroku 之前由 Travis 进行测试。

我创建了一些非常简单的测试,这些测试一直通过,但我刚刚添加了一个新模型,distilleries而 Travis 现在构建失败。

Travis 似乎在抱怨无法在我的 Webpack 清单中找到文件。我的应用程序在本地完美运行。

当我rspec spec/models/distillery_spec.rb在控制台中运行时,出现 0 个错误。

我是 Rails 测试的新手,所以如果我在某处犯了新手错误,请保持温和。

特拉维斯日志

...    
Failures:

  1) Distilleries GET /distilleries works! (now write some real specs)
     Failure/Error: <%= javascript_pack_tag 'application' %> 

     ActionView::Template::Error:
       Webpacker can't find application.js in /home/travis/build/sfcooper/GD/public/packs-test/manifest.json. Possible causes:
       1. You want to set webpacker.yml value of compile to true for your environment
          unless you are using the `webpack -w` or the …
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails travis-ci webpack webpacker

3
推荐指数
1
解决办法
1589
查看次数

无法阻止 localhost:3000 重定向到 https

我的 localhost:3000 无法打开 safari 说Cannot open the page https://localhost:3000 because safari cannot establish a secure connection.

这让我意识到浏览器正在从 http 重定向到 https。这是有道理的,因为我最近config.force_ssl = true在我的配置/环境文件中添加了这一点。我似乎已经在开发和生产环境中添加了它,所以我已经将它从开发中完全删除了。停止 Rails 服务器,然后重新启动它。但它仍然在重定向。这可能还来自哪里?我在 Safari 和 Chrome 中得到相同的结果。

ssl https ruby-on-rails

2
推荐指数
1
解决办法
2704
查看次数

尝试使用jQuery来显示JSON文本数据

我知道很少(没有)JavaScript,或者很多关于使用API​​的知识.但是,我想通过qype.com API在我的网站上显示一些酒店评论.然而,我正在努力管理这个.

这是我到目前为止的代码:

$(document).ready( function() {
  $.getJSON( "http://api.yelp.com/business_review_search?term=hilton%20metropole&location=B26%203QJ&ywsid=APIKEY Removed",
    function(data) {
      $.each( data.businesses, function(i,businesses) {
        content = '<p>' + businesses.reviews.text_excerpt + '</p>';
        content = '<p>' + businesses.reviews.date + '</p>';
        $(content).appendTo("#review");
      } );
    }
  );
} );
Run Code Online (Sandbox Code Playgroud)

我在身体中有一个名为review的div,我想显示文本.

任何建议都很受欢迎.

可以在http://api.yelp.com/business_review_search?term=hilton%20metropole&location=B26%203QJ&ywsid=lOoGGbkYpVmTvxHlWGT2Lw找到JSON.

另外,我在同一页面上有多个业务,如何在同一页面上多次使用这些业务,但是在不同的位置输出数据?

javascript jquery json

1
推荐指数
1
解决办法
3970
查看次数

Rails中有多个belongs_to模型

我有一个评论模型,目前正在使用文章.我现在想让用户能够对Coffeeshop评论发表评论.我可以使用相同的评论表,还是应该有一个单独的评论表(感觉很笨拙).我已经很久没有用RoR构建(几周),所以仍然试图掌握基础知识.

我会将它们嵌套在routes.rb(以及如何)

  resources :coffeeshops do
  resources :articles do
    resources :comments
  end
Run Code Online (Sandbox Code Playgroud)

要么

  resources :coffeeshops do
    resources :comments
  end

  resources :articles do
    resources :comments
  end
Run Code Online (Sandbox Code Playgroud)

我的模特看起来像:

用户

class User < ApplicationRecord
has_many :comments
end
Run Code Online (Sandbox Code Playgroud)

评论

class Comment < ApplicationRecord
  belongs_to :user
  belongs_to :article
  belongs_to :coffeeshop
end
Run Code Online (Sandbox Code Playgroud)

用品

class Article < ApplicationRecord
  has_many :comments, dependent: :destroy
end
Run Code Online (Sandbox Code Playgroud)

咖啡店

class Coffeeshop < ApplicationRecord
has_many :comments, dependent: :destroy
Run Code Online (Sandbox Code Playgroud)

我假设我需要一个外键将用户和评论绑在一起,然后还有文章/ coffeeshop的评论.

ruby-on-rails

0
推荐指数
1
解决办法
535
查看次数