我已将rails api应用程序从5.1更新到5.2.我只使用rails api.我正在尝试使用活动存储.我认为问题是由于线路config.api_only = true输入config/application.rb.
我做了很多谷歌,但没有找到任何东西如何在rails api中使用主动存储.
这是我的Gemfile:
source 'https://rubygems.org'
ruby '2.5.1'
git_source(:github) do |repo_name|
repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/")
"https://github.com/#{repo_name}.git"
end
gem 'rails', '~> 5.2.0'
gem 'pg', '>= 0.18', '< 2.0'
gem 'puma', '~> 3.7'
gem 'rack-cors'
# Auth
gem 'bcrypt'
gem 'jwt'
#Media file upload
gem 'activestorage'
# gem 'devise', '4.4.3'
# gem 'devise-jwt', '~> 0.5.6'
gem 'active_model_serializers', '~> 0.10.0', require: true
# backgroud jobs
gem 'sidekiq'
# fast boot
gem 'bootsnap', …Run Code Online (Sandbox Code Playgroud) 锚用作按钮。锚点主要用于导航。请改用按钮元素。(jsx-a11y/anchor-is-valid)
我想禁用上述警告。
所以我写
<div data-g-id={this.props.g.id}>
(// eslint-disable-next-line anchor-is-valid)
<a
className='classname'
href="#"
data-point="TL"
onClick={this.callFunction}
>
</div>
Run Code Online (Sandbox Code Playgroud)
但上面的一个不起作用。
我正在使用devise-jwt为后端使用 rails ,并对前端部分做出反应。
我正在关注这个https://github.com/waiting-for-dev/devise-jwt/blob/master/README.md
我的 routes.rb 文件包含:
Rails.application.routes.draw do
# remove this in production
require 'sidekiq/web'
mount Sidekiq::Web => '/sidekiq'
namespace :api, defaults: { format: 'json' } do
namespace :v1 do
devise_for :users, :controllers => {sessions: 'api/v1/sessions', registrations: 'api/v1/registrations'}
end
end
end
Run Code Online (Sandbox Code Playgroud)
我的 registrations_controller.rb (app/controllers/api/registrations_controller.rb)
class Api::V1::RegistrationsController < Devise::RegistrationsController
respond_to :json, :controllers => {sessions: 'sessions', registrations: 'registrations'}
before_action :sign_up_params, if: :devise_controller?, on: [:create]
def create
build_resource(sign_up_params)
if resource.save
render :json => resource, serializer: Api::V1::UserSerializer, meta: { message: …Run Code Online (Sandbox Code Playgroud) 我正在运行下面给出的迁移来为我的blood枚举添加一个额外的值。
class AddTypesToBlood < ActiveRecord::Migration[5.2]
def up
execute <<-SQL
ALTER TYPE blood ADD ATTRIBUTE 'NA';
SQL
end
def down
execute <<-SQL
ALTER TYPE blood DROP ATTRIBUTE 'NA';
SQL
end
end
Run Code Online (Sandbox Code Playgroud)
但是上面的迁移是抛出错误。Pease 查看终端屏幕截图是否有错误。
在 RAILS 的 POSTGRESSQL 数据库中存储 URL 的最佳数据类型是什么?
url 可以是 youtube 视频链接或一些网站链接。
我想检查目标元素是否包含一个类。如果不是,则添加该类;如果是,则删除该类。
class Hello extends React.component{
addActiveClass(e){
if(e.target.classList.contains("active")){
//I wanna to add active class to e.target
}else{
//I wanna to remove active class from e.target
//I wanna to do something like e.target.classList.removeClass("atcive");
}
}
render() {
<div className="red green blue" onClick={this.addActiveClass}>Hello World</div>
<div className="red green blue" onClick={this.addActiveClass}>Good Bye World</div>
}
}
Run Code Online (Sandbox Code Playgroud)
我想添加和删除类仅针对目标元素,而不是其他元素。
在bundle exec rubocop -p为这条特殊线做完之后,我正在进攻.
post = current_timeline.posts.build(post_params.merge({ avatars: params[:avatars] }))
Run Code Online (Sandbox Code Playgroud)
违法行为是: Style/BracesAroundHashParameters: Redundant curly braces around a hash parameter.
怎么解决?我是红宝石中的rubocop新手.
我正在使用表格的gender字段user作为enum类型。
迁移也成功进行。但是schema.rb崩溃了。
运行迁移后,我的schema.rb样子:
ActiveRecord::Schema.define(version: 2018_07_23_115046) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
# Could not dump table "users" because of following StandardError
# Unknown type 'gender' for column 'gender'
end
Run Code Online (Sandbox Code Playgroud)
我的迁移是:
class AddGenderToUsers < ActiveRecord::Migration[5.2]
def up
execute <<-SQL
CREATE TYPE gender AS ENUM ('male', 'female', 'not_sure', 'prefer_not_to_disclose');
SQL
add_column :users, :gender, :gender, index: true
end
def down
remove_column :users, :gender
execute …Run Code Online (Sandbox Code Playgroud) 我正在构建一个网络应用程序。为此,我将rails其用作backend. 也react用于frontend. 我有一个模型user。我想向users网站用户显示所有内容及其详细信息。所以我有大约 10,000 多个用户。所以我不能一次性将所有用户发送到前端。我想一次只显示 50 个用户。因此,要查看接下来的 50 个用户,前端会向我发送一个新请求以获取接下来的 50 个用户,依此类推。所以我没有得到正确的路径如何构建它。
现在我把所有的用户都这样了,我的服务器也挂了。
我的 users_controller.rb
class UsersController < ApplicationController
def index
users = User.all
render_success(:ok, users, meta: { message: 'User sucessfully send' })
end
end
Run Code Online (Sandbox Code Playgroud)
简而言之 - 我只想在每个请求中向前端发送有限数量的数据。
class Api::V1::BookSerializer < ActiveModel::Serializer
attributes :id, :status, :name, :author_name, :published_date
attributes :conditional_attributes if condition_1?
belongs_to :user if condition_2?
end
Run Code Online (Sandbox Code Playgroud)
在这里,我想为控制器的基本操作设置条件。
例如,我想仅发送索引操作的条件属性,而不发送其他操作的条件属性。
但据我所知,rails "active_model_serializers", "~> 0.10.0" 并没有给出任何这样的东西。
我的user.rb模型包含:
class User < ApplicationRecord
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable,
:confirmable, :lockable, :timeoutable, :omniauthable,
:jwt_authenticatable, jwt_revocation_strategy: JWTBlacklist
def send_devise_notification(notification, *args)
devise_mailer.send(notification, self, *args).deliver_later
end
end
Run Code Online (Sandbox Code Playgroud)
我正在使用devise-jwt gem登录我的Rails api。
我的JWTBlacklist.rb模型包含:
class JwtBlacklist < ApplicationRecord
include Devise::JWT::RevocationStrategies::Blacklist
self.table_name = 'jwt_blacklist'
end
Run Code Online (Sandbox Code Playgroud) reactjs ×4
postgresql ×3
devise ×2
enums ×2
rails-api ×2
eslint ×1
jwt ×1
pagination ×1
rubocop ×1
ruby ×1