米国AppStoreで有料アプリを購入する
米国AppStoreで有料アプリを購入する
概要
- 日本のAppleIDでは米国のアプリをダウンロードできない
- 日本のクレジットカードは、米国のAppleIDの決済方法に指定できない
- たとえPaypalを使ってもダメなようです
- 米国のAppleIDで最初にアプリを購入するときは、セキュリティ質問に答えなくてはいけない *
用意するもの
- 米国AppleIDのID、パスワード、セキュリティ質問の答え
- クレジットカード
手順
米国apple idを取得
- 作って下さい
- 僕は5年前に作成していたので割愛します
- これが後に大きな悲劇を生む
米国のiTuneカードを買う
- iTunes Card Deliveryで買える
- order numberを紙に書いて、顔写真と一緒に撮った写真を送ってくれというメールがくる
- 紙とペンが無かったので、PCの画面と俺の顔を写真で撮って送ったが問題なかった
- iTunesカードの裏面の画像ファイルが送られてくる
- 日本時間の土曜日16:00に購入したのだが、爆速レスだった。
- すげえ
iTunesカードをredeemする
- iPhoneのAppStoreアプリを起動
- Featuredを最下部までスクロールする
- Redeemをタップして、コードを入力する
購入する
- iPhoneのAppStoreで好きなアプリを購入する
- 最初にアプリを購入するときはセキュリティの質問に答える必要がある
- コレがわからない時はリセットする
セキュリティの質問をリセットする
- apple idにログイン
- セキュリティの項目へいき、セキュリティの質問をクリックする
- セキュリティの質問のダイアログが出現する
- Reset your security questionsというリンクが出る
- 僕は出なかった…
- 出ない場合は問い合わせて下さいというリンクがあったがサポート対象外の時間だった模様
日本のサポートセンタに電話してセキュリティの質問をリセットする
- サポート電話番号をAppleのページで調べて電話する
- IMEI番号を聞かれるので答える
- iPhoneの設定 > 一般 > 情報を開き、少しスクロールすると出現する
- 本人確認のためにapple idでログインして4桁のPINコードを発行して伝える
- セキュリティ質問3つ全てを答える
- 大文字、小文字をクリック判定するのでオペレータの方にきちんと伝える
- 4回までチャレンジできるらしい
- 失敗すると購入証明書を持ってAppleストアにいかなきゃいけないらしい
- そもそもコレがわからないから困ったわけだが・・・笑
Rails5セットアップしてみました
Rails5が気になってきたので、ちょっとだけ試してみました。 デフォルトのWeb ServerがWEBrickからPumaになっていて「初動が爆速になったな」という印象を受けました。 (開発中のプロジェクトがモジュール多すぎて、起動が遅いというのもありますが...)
環境
OS: OSX EL Capitan 10.11.4 Ruby: 2.4.0-preview1 Ruby on Rails: 5.0.0.rc1
やること
- Rails5をインストール
- 動作確認
- slimを使いたい
参考リンク集
- Rails 5(beta) を使ってみた(前編)
- 後編がない。ウケるw
Rails5をインストール
rubyをインストール
- せっかくなので最新の2.4.0を投入。previewって書いてあるけど気にしない!
rbenv install -l rbenv install 2.3.1 #=> Downloading ruby-2.3.1.tar.bz2... #=> -> https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.bz2 #=> Installing ruby-2.3.1.. rbenv install 2.4.0-preview1
Bundlerをインストールする
- rubyの新しいバージョンをインストールしているので、bundlerもインストールしましょう。
- 既存のプロジェクトに影響を与えたくないので、適当なディレクトリに作っています。
mkdir xxxxx cd $_ rbenv local 2.4.0-preview1 gem install bundler bundler init
Railsのバージョンを探す
- インストールするために、最新のバージョンを確認します。
5.0.0.rc1
を選択することにします。(記事作成時点では、slim-railsが5.0.0.rc2に対応していなかったため)
# railsを探す gem search -ar --prerelease ^rails$ *** REMOTE GEMS *** rails (5.0.0.rc2, 5.0.0.rc1, 5.0.0.racecar1, 5.0.0.beta4, 5.0.0.beta3, 5.0.0.beta2, 5.0.0.beta1.1, 5.0.0.beta1, 4.2.6, 4.2.6.rc1, 4.2.5.2, 4.2.5.1, 4.2.5, 4.2.5.rc2, 4.2.5.rc1, 4.2.4, 4.2.4.rc1, 4.2.3, 4.2.3.rc1, 4.2.2, 4.2.1, 4.2.1.rc4, 4.2.1.rc3, 4.2.1.rc2, 4.2.1.rc1, 4.2.0, 4.2.0.rc3, 4.2.0.rc2, 4.2.0.rc1, 4.2.0.beta4, 4.2.0.beta3, 4.2.0.beta2, 4.2.0.beta1, 4.1.15, 4.1.15.rc1, 4.1.14.2, 4.1.14.1, 4.1.14, 4.1.14.rc2, 4.1.14.rc1, 4.1.13, 4.1.13.rc1, 4.1.12, 4.1.12.rc1, 4.1.11, 4.1.10, 4.1.10.rc4, 4.1.10.rc3, 4.1.10.rc2, 4.1.10.rc1, 4.1.9, 4.1.9.rc1, 4.1.8, 4.1.7.1, 4.1.7, 4.1.6, 4.1.6.rc2, 4.1.6.rc1, 4.1.5, 4.1.4, 4.1.3, 4.1.2, 4.1.2.rc3, 4.1.2.rc2, 4.1.2.rc1, 4.1.1, 4.1.0, 4.1.0.rc2, 4.1.0.rc1, 4.1.0.beta2, 4.1.0.beta1, 4.0.13, 4.0.13.rc1, 4.0.12, 4.0.11.1, 4.0.11, 4.0.10, 4.0.10.rc2, 4.0.10.rc1, 4.0.9, 4.0.8, 4.0.7, 4.0.6, 4.0.6.rc3, 4.0.6.rc2, 4.0.6.rc1, 4.0.5, 4.0.4, 4.0.4.rc1, 4.0.3, 4.0.2, 4.0.1, 4.0.1.rc4, 4.0.1.rc3, 4.0.1.rc2, 4.0.1.rc1, 4.0.0, 4.0.0.rc2, 4.0.0.rc1, 4.0.0.beta1, 3.2.22.2, 3.2.22.1, 3.2.22, 3.2.21, 3.2.20, 3.2.19, 3.2.18, 3.2.17, 3.2.16, 3.2.15, 3.2.15.rc3, 3.2.15.rc2, 3.2.15.rc1, 3.2.14, 3.2.14.rc2, 3.2.14.rc1, 3.2.13, 3.2.13.rc2, 3.2.13.rc1, 3.2.12, 3.2.11, 3.2.10, 3.2.9, 3.2.9.rc3, 3.2.9.rc2, 3.2.9.rc1, 3.2.8, 3.2.8.rc2, 3.2.8.rc1, 3.2.7, 3.2.7.rc1, 3.2.6, 3.2.5, 3.2.4, 3.2.4.rc1, 3.2.3, 3.2.3.rc2, 3.2.3.rc1, 3.2.2, 3.2.2.rc1, 3.2.1, 3.2.0, 3.2.0.rc2, 3.2.0.rc1, 3.1.12, 3.1.11, 3.1.10, 3.1.9, 3.1.8, 3.1.7, 3.1.6, 3.1.5, 3.1.5.rc1, 3.1.4, 3.1.4.rc1, 3.1.3, 3.1.2, 3.1.2.rc2, 3.1.2.rc1, 3.1.1, 3.1.1.rc3, 3.1.1.rc2, 3.1.1.rc1, 3.1.0, 3.1.0.rc8, 3.1.0.rc6, 3.1.0.rc5, 3.1.0.rc4, 3.1.0.rc3, 3.1.0.rc2, 3.1.0.rc1, 3.1.0.beta1, 3.0.20, 3.0.19, 3.0.18, 3.0.17, 3.0.16, 3.0.15, 3.0.14, 3.0.13, 3.0.13.rc1, 3.0.12, 3.0.12.rc1, 3.0.11, 3.0.10, 3.0.10.rc1, 3.0.9, 3.0.9.rc5, 3.0.9.rc4, 3.0.9.rc3, 3.0.9.rc1, 3.0.8, 3.0.8.rc4, 3.0.8.rc2, 3.0.8.rc1, 3.0.7, 3.0.7.rc2, 3.0.7.rc1, 3.0.6, 3.0.6.rc2, 3.0.6.rc1, 3.0.5, 3.0.5.rc1, 3.0.4, 3.0.4.rc1, 3.0.3, 3.0.2, 3.0.1, 3.0.0, 3.0.0.rc2, 3.0.0.rc, 3.0.0.beta4, 3.0.0.beta3, 3.0.0.beta2, 3.0.0.beta, 2.3.18, 2.3.17, 2.3.16, 2.3.15, 2.3.14, 2.3.12, 2.3.11, 2.3.10, 2.3.9, 2.3.9.pre, 2.3.8, 2.3.8.pre1, 2.3.7, 2.3.6, 2.3.5, 2.3.4, 2.3.3, 2.3.2, 2.2.3, 2.2.2, 2.1.2, 2.1.1, 2.1.0, 2.0.5, 2.0.4, 2.0.2, 2.0.1, 2.0.0, 1.2.6, 1.2.5, 1.2.4, 1.2.3, 1.2.2, 1.2.1, 1.2.0, 1.1.6, 1.1.5, 1.1.4, 1.1.3, 1.1.2, 1.1.1, 1.1.0, 1.0.0, 0.14.4, 0.14.3, 0.14.2, 0.14.1, 0.13.1, 0.13.0, 0.12.1, 0.12.0, 0.11.1, 0.11.0, 0.10.1, 0.10.0, 0.9.5, 0.9.4.1, 0.9.4, 0.9.3, 0.9.2, 0.9.1, 0.9.0, 0.8.5, 0.8.0)
Rails5をインストールします。
- Gemfileに記載します。
source "https://rubygems.org" gem "rails", "5.0.0.rc1"
- bundle execします
bundle install --path vendor/bundle
- railsのversionを確認します。
bundle exec rails -v Rails 5.0.0.rc1
- 事が済んだのでGemfileを消しておきます。
rm Gemfile
プロジェクトの作成
bundle exec rails _5.0.0.rc1_ new .
動作確認
- まあ、いつもどおりやってみます。
- Web ServerがPumaになっています。
- いつもより早い気がします。
bundle exec rails s => Booting Puma => Rails 5.0.0.rc2 application starting in development on http://localhost:3000 => Run `rails server -h` for more startup options Puma starting in single mode... * Version 3.4.0 (ruby 2.4.0-p-1), codename: Owl Bowl Brawl * Min threads: 5, max threads: 5 * Environment: development * Listening on tcp://localhost:3000 Use Ctrl-C to stop
Rails5でslimを使う
- テンプレートエンジンをslimにします。
- 理由は簡単で、慣れてるからです。
gem 'slim-rails
require_relative 'boot' require 'rails/all' Bundler.require(*Rails.groups) module Third class Application < Rails::Application config.generators.template_engine = :slim ## here end end
早速ためしてみる
- まずはScaffoldで適当なモデルを作ります。
rails g scaffold Book name:string auther:string bundle exec rake db:migrate
localhost:3000/books
にアクセス!
ArgumentError (key must be 32 bytes): vendor/bundle/ruby/2.4.0/gems/activesupport-5.0.0.rc2/lib/active_support/message_encryptor.rb:72:in `key=' vendor/bundle/ruby/2.4.0/gems/activesupport-5.0.0.rc2/lib/active_support/message_encryptor.rb:72:in `_encrypt' vendor/bundle/ruby/2.4.0/gems/activesupport-5.0.0.rc2/lib/active_support/message_encryptor.rb:58:in `encrypt_and_sign' vendor/bundle/ruby/2.4.0/gems/actionpack-5.0.0.rc2/lib/action_dispatch/middleware/cookies.rb:592:in `commit' vendor/bundle/ruby/2.4.0/gems/actionpack-5.0.0.rc2/lib/action_dispatch/middleware/cookies.rb:465:in `[]=' vendor/bundle/ruby/2.4.0/gems/actionpack-5.0.0.rc2/lib/action_dispatch/middleware/session/cookie_store.rb:117:in `set_cookie' vendor/bundle/ruby/2.4.0/gems/rack-2.0.0.rc1/lib/rack/session/abstract/id.rb:353:in `commit_session' vendor/bundle/ruby/2.4.0/gems/rack-2.0.0.rc1/lib/rack/session/abstract/id.rb:224:in `context' vendor/bundle/ruby/2.4.0/gems/rack-2.0.0.rc1/lib/rack/session/abstract/id.rb:216:in `call' vendor/bundle/ruby/2.4.0/gems/actionpack-5.0.0.rc2/lib/action_dispatch/middleware/cookies.rb:613:in `call' vendor/bundle/ruby/2.4.0/gems/activerecord-5.0.0.rc2/lib/active_record/migration.rb:552:in `call' vendor/bundle/ruby/2.4.0/gems/actionpack-5.0.0.rc2/lib/action_dispatch/middleware/callbacks.rb:38:in `block in call' vendor/bundle/ruby/2.4.0/gems/activesupport-5.0.0.rc2/lib/active_support/callbacks.rb:97:in `__run_callbacks__' vendor/bundle/ruby/2.4.0/gems/activesupport-5.0.0.rc2/lib/active_support/callbacks.rb:750:in `_run_call_callbacks' vendor/bundle/ruby/2.4.0/gems/activesupport-5.0.0.rc2/lib/active_support/callbacks.rb:90:in `run_callbacks' vendor/bundle/ruby/2.4.0/gems/actionpack-5.0.0.rc2/lib/action_dispatch/middleware/callbacks.rb:36:in `call' vendor/bundle/ruby/2.4.0/gems/actionpack-5.0.0.rc2/lib/action_dispatch/middleware/executor.rb:12:in `call' vendor/bundle/ruby/2.4.0/gems/actionpack-5.0.0.rc2/lib/action_dispatch/middleware/remote_ip.rb:79:in `call' vendor/bundle/ruby/2.4.0/gems/actionpack-5.0.0.rc2/lib/action_dispatch/middleware/debug_exceptions.rb:49:in `call' vendor/bundle/ruby/2.4.0/gems/web-console-3.3.0/lib/web_console/middleware.rb:131:in `call_app' vendor/bundle/ruby/2.4.0/gems/web-console-3.3.0/lib/web_console/middleware.rb:28:in `block in call' vendor/bundle/ruby/2.4.0/gems/web-console-3.3.0/lib/web_console/middleware.rb:18:in `catch' vendor/bundle/ruby/2.4.0/gems/web-console-3.3.0/lib/web_console/middleware.rb:18:in `call' vendor/bundle/ruby/2.4.0/gems/actionpack-5.0.0.rc2/lib/action_dispatch/middleware/show_exceptions.rb:31:in `call' vendor/bundle/ruby/2.4.0/gems/railties-5.0.0.rc2/lib/rails/rack/logger.rb:36:in `call_app' vendor/bundle/ruby/2.4.0/gems/railties-5.0.0.rc2/lib/rails/rack/logger.rb:24:in `block in call' vendor/bundle/ruby/2.4.0/gems/activesupport-5.0.0.rc2/lib/active_support/tagged_logging.rb:70:in `block in tagged' vendor/bundle/ruby/2.4.0/gems/activesupport-5.0.0.rc2/lib/active_support/tagged_logging.rb:26:in `tagged' vendor/bundle/ruby/2.4.0/gems/activesupport-5.0.0.rc2/lib/active_support/tagged_logging.rb:70:in `tagged' vendor/bundle/ruby/2.4.0/gems/railties-5.0.0.rc2/lib/rails/rack/logger.rb:24:in `call' vendor/bundle/ruby/2.4.0/gems/actionpack-5.0.0.rc2/lib/action_dispatch/middleware/request_id.rb:24:in `call' vendor/bundle/ruby/2.4.0/gems/rack-2.0.0.rc1/lib/rack/method_override.rb:22:in `call' vendor/bundle/ruby/2.4.0/gems/rack-2.0.0.rc1/lib/rack/runtime.rb:22:in `call' vendor/bundle/ruby/2.4.0/gems/activesupport-5.0.0.rc2/lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call' vendor/bundle/ruby/2.4.0/gems/actionpack-5.0.0.rc2/lib/action_dispatch/middleware/executor.rb:12:in `call' vendor/bundle/ruby/2.4.0/gems/actionpack-5.0.0.rc2/lib/action_dispatch/middleware/static.rb:136:in `call' vendor/bundle/ruby/2.4.0/gems/rack-2.0.0.rc1/lib/rack/sendfile.rb:111:in `call' vendor/bundle/ruby/2.4.0/gems/railties-5.0.0.rc2/lib/rails/engine.rb:522:in `call' vendor/bundle/ruby/2.4.0/gems/puma-3.4.0/lib/puma/configuration.rb:224:in `call' vendor/bundle/ruby/2.4.0/gems/puma-3.4.0/lib/puma/server.rb:569:in `handle_request' vendor/bundle/ruby/2.4.0/gems/puma-3.4.0/lib/puma/server.rb:406:in `process_client' vendor/bundle/ruby/2.4.0/gems/puma-3.4.0/lib/puma/server.rb:271:in `block in run' vendor/bundle/ruby/2.4.0/gems/puma-3.4.0/lib/puma/thread_pool.rb:114:in `block in spawn_thread' Rendering vendor/bundle/ruby/2.4.0/gems/actionpack-5.0.0.rc2/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout Rendering vendor/bundle/ruby/2.4.0/gems/actionpack-5.0.0.rc2/lib/action_dispatch/middleware/templates/rescues/_source.html.erb Rendered vendor/bundle/ruby/2.4.0/gems/actionpack-5.0.0.rc2/lib/action_dispatch/middleware/templates/rescues/_source.html.erb (1.8ms) Rendering vendor/bundle/ruby/2.4.0/gems/actionpack-5.0.0.rc2/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb Rendered vendor/bundle/ruby/2.4.0/gems/actionpack-5.0.0.rc2/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (1.2ms) Rendering vendor/bundle/ruby/2.4.0/gems/actionpack-5.0.0.rc2/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb Rendered vendor/bundle/ruby/2.4.0/gems/actionpack-5.0.0.rc2/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (0.9ms) Rendered vendor/bundle/ruby/2.4.0/gems/actionpack-5.0.0.rc2/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout (56.2ms)
- 秘密鍵は32byteにしろっていうことだろうけど、どこで設定しているのだろうか。
- わからんが、直接設定したら動いた(笑)
- だめだよね。。。解決策を知ってたら教えて下さい。
def initialize(secret, *signature_key_or_options) options = signature_key_or_options.extract_options! sign_secret = signature_key_or_options.first # @secret = secret @secret = "12345678901234567890123456789012" # here @sign_secret = sign_secret @cipher = options[:cipher] || 'aes-256-cbc' @verifier = MessageVerifier.new(@sign_secret || @secret, digest: options[:digest] || 'SHA1', serializer: NullSerializer) @serializer = options[:serializer] || Marshal end
検索用フォームのオブジェクトをnewするときは#attributes
検索用フォームのオブジェクトをnewするときは#attributesを使うと良さそう。
class HogeSearchForm include ActiveModel::Model attr_accessor :id, :price, :number, :tel, :tel_search_index, end
@hoge_search_form = HogeSearchForm.new(@hoge.attributes)
参考にさせていただいたページ
font awesome update
awesomeのdocをみてて、使えないフォントとかがある場合はアップデートすると解決するみたいです。
font awesomeのアップデート
bundle update rails-assets-fontawesome
haml placeholderで改行する
placeholderのテキストを改行したい。
改行したいところに
を記載することで、実現できるとのことだったが動作しなかった。
#=> 改行されなかった = text_area_tag :hoge, '', class: 'form-control', rows: 5, placeholder: '一行目 二行目'
cssを使ってねじ込む方法があるらしい。 こちらは動作しました。
= text_area_tag :hoge, '', class: 'form-control hoge', rows: 5, placeholder: '一行目' .hoge::-webkit-input-placeholder::after { display: block; content: "二行目"; }
3行目以降は改行したいところに\A
でいけるみたい。
書いてみて思ったけど、クラス指定じゃなくてID指定にしたほうがいいよね。
参考させていただきました、ありがとうございます。
N+1の原因
N+1の原因
includesしていない
常識なので、割愛
includesしているが、order、allなどActiveRecordの操作をしている
対策
allやorderを代替手段に変更する
ActiveRelationが複数形のとき、1つ1つのレコードがhas_oneの関連先を参照している
- http://washiiku.hatenablog.com/entry/2014/01/02/012801 has_manyはN+1のにほい
シェルでの入力操作
control + w カーソルの位置から、前のスペースまでを削除 control + k カーソルの位置から、文末までを削除 control + y 行頭からカーソル位置までを削除 control + l スクリーン再描画