ruby
apt-get install libvipsで install した libvips は、heic フォーマットに対応していない。例えば ruby-vips で使うような場合は、以下のようにソースコードからコンパイルする必要があります。 FROM ruby:3.2.2-slim as base # ==========================…
例えば、バケットからバケットへオブジェクトをコピーするときに、 `The specified key does not exist.` とエラーが出る場合がありました。 client = Aws::S3::Client.new client.copy_object( bucket: out_bucket_name, copy_source: src_bucket_name + '/…
Rails を用いて、画像アップロードをするシステムを作っていた時、画像を連続3回アップロードすると502エラーが出る場合があった。これは、メモリの使用量が大きくなり、pod 内のプロセスがkill されていたことが原因だった。 Ruby on Rails のメモリ消費が…
active_slastic_job を利用しているとき、Rails のバージョンを変更したところ、 I, [2018-10-12T16:21:11.029048 #653] INFO -- : [d8e52f46-4c12-40b5-ab99-f593f6306a95] Started POST "/" for 127.0.0.1 at 2018-10-12 16:21:11 +0000 F, [2018-10-12T16…
select 高速化のヒント class Parent has_many :childs end class Child belongs_to :parent end has_many の配列データ側を絞り込む。なければ parent も返らない。 Parent.includes(:childs).where("childs.age > ?", 20).references(:childs) belongs_to …
File クラスを使うと、ストレージの読み書きが発生し、速度が落ちるため、メモリ上だけで処理を行う方針。 File クラスと同じ処理をするため、メソッドを定義する。 class StringFileIO < StringIO def self.create_from_canvas_base64 str return nil if st…
ActiveAdmin で、belongs_to, accepts_nested_attributes_for を設定したmodelも同時に表示・編集する ActiveAdmin.register UserLogin do # ... form do |f| f.inputs nil, for: [:user, f.object.user || User.new] do |fc| fc.input :icon fc.input :full…
$ bundle exec whenever --update-crontab appname --set environment=productionこのように処理を実行した時、schedule.rb の中では、ENV['RAILS_ENV'] で取得できない。$ config/schedule.rb require File.expand_path(File.dirname(__FILE__) + "/environ…
class Status VALUES = { publish: PUBLISH = 0, pending: PENDING = 1, draft: DRAFT = 2, trash: TRASH = 3, } end このようにアクセスできる Status::PUBLISH Status::VALUES
$ config/deploy.rb # config valid only for current version of Capistrano lock '3.4.0' set :application, 'hoge' set :repo_url, 'git@bitbucket.org:hoge/hoge.git' # Default value for :scm is :git set :scm, :git # set :rbenv_ruby, '2.2.1' # De…
アップロード先 mysqlのサーバー起動 $ gem install taps $ gem install mysql $ taps server mysql://root@localhost/releasenote_stg?encoding=utf8 <basic認証名前> <basic認証パスワード> 5000 番ポートでサーバーが立ち上がります。 サーバーIP アドレスを確認しておく。 コピー元のheroku </basic認証パスワード></basic認証名前>…
例えば、wav ファイルを 保存したときに、別バージョンとして mp3 も保存するような場合。 version :mp3 do process :convert_mp3 # この名前が、最終的なファイル名になる。 # デフォルトで、 mp3_****.wav になっているので、リネーム def full_filename f…
class Api::FilesController < Api::ApplicationController def create # file = params[:data] data_str = params[:data_str] file = File.new # file.data = data file.data_str = data_str end end class File < ActiveRecord::Base mount_uploader :data…
Mp3Info は、パス指定でなければ利用出来ないので、 current_path によって、一時ファイルを開き直している。 class ItemDataUploader < CarrierWave::Uploader::Base include CarrierWave::MimeTypes storage :fog process :set_content_type process :chec…
Internal Server Error SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed これで直る curl -o cert.pem http://curl.haxx.se/ca/cacert.pem mv cert.pem /usr/local/etc/openssl
Rails は、内部の日時をUTCで管理しているため、 DBに保存された時間と、表示される時間が異なります。$ config/application.rb config.active_record.default_timezone = :local config.active_record.time_zone_aware_attributes = false config.time_zone…
いらない項目だけ非表示にする remove_filter :user 既存を残し、必要な物を追加する preserve_default_filters! filter :created_at, as: :date_range 条件によって項目を出す。 false の時は、デフォルトで表示される場合も、非表示になる filter :hoge, :…
composite_primary_keys の gem をインストールするmodel に、主キーを配列で指定、display_name も指定 class Hoge < ActiveRecord::Base self.primary_keys = :user_id, :teacher_id def display_name "#{self.user_id}, #{self.teacher_id}" end end これ…
before_create do # hoge end この中の処理が原因だった。
携帯電話などではお馴染みだが、Rangeヘッダーがついている場合は、 206 のステータスで部分的に返す必要がある。safari でだけ再生されなかったが、 返しているデータバイト数が1バイト足りないためだった。 def main # 何かの方法で読み込む bin = load se…
Rails4 では ActiveRecord で更新可能なフィールドを指定する方法が変わった。 以前までの、 attr_accessible :name, :title これは使わなくなった。今後は、コントローラーでアクセスできるフィールドを指定するようになる。 ActiveAdmin.register User do …
現在ネットでみつかるプログラムは、 xcodeproj 0.3.0 を使っており、 xcodeproj 0.6.0 を使った物が無かったので作った。公式ドキュメントは間違っているし、gemソース中のコメントも間違っているため、 自分で作りたい場合は、ソースを読んで作るしか無い…
endpoint を定義すれば良い。 設定ファイルを独自に作成。 管理コンソールの、アカウント / セキュリティー証明書 の所に、 アクセスキーIDとシークレットキーは書かれている。自分は以下のように定義して使用しています。$ vi config/carrierwave.yml devel…
設定追加 ./config.ru # This file is used by Rack-based servers to start the application. require ::File.expand_path('../config/environment', __FILE__) map ENV['RAILS_RELATIVE_URL_ROOT'] do run MyAppName::Application end 公開用のディレクト…
Rails の controller 側 class DownloadController < ApplicationController def action # 認証処理 ... resource_id = 2 resource = Resource.find resource_id response.header['X-Accel-Redirect'] = '/reproxy' response.header['X-Reproxy-URL'] = reso…
iOSアプリでアイテムを購入したときに、Appleのサーバーで購入チェックを行う。 apple が用意している、pdfを元に素直に実装すると、以下のようになる。 class AppStore STATUS_OK = 0 /** * @param[in] reveipt base64エンコードされた、レシートデータ * @…
/var/www/html/dashboard/vendor/bundle/ruby/1.9.1/gems/railties-3.2.11/lib/rails/commands/runner.rb:53:in `eval': SSL_connect returned=1 errno=0 state=SSLv3 read server session ticket A: sslv3 alert certificate expired (OpenSSL::SSL::SSLErr…
hair_trigger というgem があったがエラーが出て機能しなかった。execute メソッドで直接SQLを実行することになる。migrate 実行順が影響するので、migration ファイルを別に作成 $ ./script/rails g migration trigger_photos たとえば以下のようにsqlを流…
image を セットしたとき、同時にカラムにサイズを保存する処理 class PhotoImageLargeUploader < CarrierWave::Uploader::Base include CarrierWave::RMagick ... process resize_to_fit: [100, 100] process convert: 'jpeg' process :hoge def hoge # rma…
install $ vim Gemfile 追加 gem "htmlentities" $ bundle install 使い方 puts HTMLEntities.new.decode "♪"