サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
猫
blog.nomnel.net
委譲とオープンクラスを接客で例示する, という話が【Ruby】接客と委譲(元は「接客と委譲とオープンクラス」だったかな)で書かれていてすごくいい例示だと思ったんだけど, なんかちょっと違うなーと思ったところがあったので書いてみる. 設定とかは本家を参照してほしい. # チーフ class Chief def initialize @info = { "トイレ" => "2F東3扉前", "喫煙所" => "1F西門外" } end def answer(target) puts "#{target}は#{@info[target]}にございます。" end end # 日雇いバイト class PartTimer def initialize(chief) @chief = chief end end # チーフのヤマダさん yamada = Chief.new # 日雇いバイトのタナカさ
class Foo < ActiveRecord::Base has_many :bars, dependent: :destroy before_destroy :do_something def do_something return if bars.blank? bars.map &:somethig_cool end end このように, has_many(has_one)な関係をものをbefore_destroyで使うには注意が必要. 上の例だとbefore_destroyの前にbarsは削除されてしまうので, bars.blank?は必ず真になりbars.map &:somethig_coolは永久に実行されない. これを避けるには以下のようにする. class Foo < ActiveRecord::Base before_destroy :do_something has_
Rails4.0からadd_reference使えるようになってた. rails g migration AddPiyoToHoges piyo:refernces とかすると class AddPiyoToHoges < ActiveRecord::Migration def change add_reference :hoges, :piyo, index: true end end なファイルが出来て rails db:migrate するとdb/schema.rbで create_table "hoges", force: true do |t| t.integer "piyo_id" end add_index "hoges", ["piyo_id"], name: "index_hoges_on_piyo_id", using: :btree みたいになる. 便利. 参考 ad
2013年04月09日ActiveRecord::RecordNotUnique例外の発生をdisable_withで防ぐ ActiveRecord::RecordNotUnique例外 (参考: Rails でDBの重複エラーが発生した場合の対処について – QA@IT) RailsでModelの属性にvalidates_uniqueness_ofを設定しても, 内部ではその値が既存かどうかをselectでチェックしてからinsert/updateするだけなので, 同時に更新処理が行われた場合は重複してしまう可能性がある. よって確実に一意性を保証するならDB側でcolumnをuniqueと宣言しておく必要がある. このとき, DB側で重複エラーが発生した場合, ActiveRecord::RecordNotUnique例外が起こる. 対策としては, submitボタンをdisable_
例えばA has_many BsかつB has_one Cであるとき A.all.includes(bs: :c) とすればよい. さらにB has_many Dsであれば A.all.includes(bs: [:c, :ds]) となる.
さくらのVPSでMySQLをインストール, 設定した手順の覚え書き. 目次 インストールと自動起動の有効化 設定ファイルの編集 起動と初期設定 インストールと自動起動の有効化 yumでインストールする. sudo yum -y install mysql-server # バージョン確認 mysql --version # -> 5.1.61 自動起動を有効にする. sudo chkconfig mysqld on # チェック chkconfig --list mysqld # -> 3がonになっていればOK 設定ファイルの編集 設定ファイルのバックアップをとってから編集する. sudo cp /etc/my.cnf /etc/my.cnf.org sudo vi /etc/my.cnf 変更内容は以下. # symbolic-links=0 と [mysqld_safe] の間の行に
こうする. (Ruby: 2.0.0-p0, Rails: 3.2.12) rails runner "Foo::Bar.buz(fuga: 3)" ちなみに rails runner Foo::Bar.buz(fuga: 3) みたいにダブルクォート付けないと zsh: unknown sort specifier みたいに怒られる. rails runner Foo::Bar.buz だと問題ないけど. コードはこんな感じを想定. module Foo class Bar class
この前Boxen試してみたんだけど自分一人での構成管理には大袈裟過ぎるなと思って使うの止めてた. もっとライトに, マシン買い替えたときとかにセットアップ楽になる程度でも良かった. そしたらBrewfileでHomebrewパッケージを管理するって記事があったので早速やってみた. 結論, すごくよかった. やり方は上の記事(と「BrewfileでHomebrewパッケージを管理する」をやってみた)に書いてあるとおりなんだけど # Make sure using latest Homebrew update # Update already-installed formula (takes too much time, I will do it manually later) # upgrade # Add Repository tap homebrew/versions || true t
SinatraでHello Worldするまでの続きとして. SQLiteの場合. Gemfileに以下を追加してbundle installする. gem 'sinatra-activerecord' gem 'sqlite3' DB接続部分を書く. とりあえずapp.rbに書いた. require 'sinatra' require 'active_record' ActiveRecord::Base.establish_connection( adapter: 'sqlite3', database: 'development.sqlite3' ) # 以下省略 Rakefile書く. require 'sinatra/activerecord/rake' require './app' これでrake db:migrateとか出来るようになった. 今回はとりあえずusersテーブル
2023年09月23日Shokz OpenComm UC を試したが合わなかった2023年09月22日式年遷宮20232021年01月22日ダイエットログ その12021年01月13日ダイエットはじめた2020年12月29日2020年振り返り2020年11月02日TypeScript を導入してお型付けした2020年10月28日デモ用の環境を整備した2020年10月19日Nuxt.js で環境によって使う Repository を切り替える2020年10月19日Nuxt.js で Repository を使う2020年10月19日Nuxt.js で Atomic Design2020年10月14日Nuxt アプリのコードをちょっと整理した2020年09月10日開発環境整備系タスクから手を付けた2020年09月10日RSpec を GitHub Actions で動かす2020年09月08日
目次 環境 Javaのインストール Jenkinsのインストール nginx経由でJenkinsにアクセスする Jenkinsへのアクセス制限 環境 CentOS 6.4 64bit Javaのインストール (参照: 公式サイトのInstalling Jenkins) Jenkins氏は職場環境としてJavaを要求している. しかも Sun-compatible なJavaを. なので, まずはJavaがインストールされているかチェック. java -version 僕の場合はインストールされていなかったが, もし java version "1.5.0" gij (GNU libgcj) version 4.4.6 20110731 (Red Hat 4.4.6-3) のように表示された場合は, Jenkins氏好みのJavaではないので sudo yum remove java してか
関西Ruby会議に行ってやる気満々だったのにネットとPCの無い日々が続いたのでむしゃくしゃして作りました. 何これ 「misawa」と呟くと地獄のミサワの女に惚れさす名言集からランダムに投稿するLingr用のbotです. なんで作ったの 関西Ruby会議05のフルタイムの学生さん発表中にLingrとは違うチャットサービスで動いている画像が出てきました. 直接顔を合さずリモートで働いていると空気感がうんちゃらかんちゃらになるので冗談みたいなものが混じってると良い的なことを仰ってて, いいなーLingrにも欲しいなーもうあるかなーかぶってもいいかーと思って作りました. どう使うの LingrのOwner権限を持っている部屋にhoresaseを招待してください. その部屋で「misawa」とのみ投稿すると名言が返ってきます. なにで作ったの Sinatra + PostgreSQL on Her
Rails4でAppReviewz for iOSというサイトを作りました. 初めて作ったwebサービスです. 大体のことは途中経過に書いたので以下, 一問一答形式で. 一般的な内容 何するやつ? iOSアプリのレビューとレビューされたアプリをまとめて表示するサイトです. 新規性どうですか 新規性ダメです. 要はRSSですので. なんで作ったの? 新しいアプリ探したい時にレビューサイトを参考にしようと思ったのですが, 複数サイトを見るのは面倒だしRSS登録してもノイズが多いので抽出して一箇所にまとめたくなったからです. ターゲットだれですか \ / \ 丶 i. | / ./ / \ ヽ i. .| / / / \ ヽ i | / / /
環境 CentOS release 6.4 (Final) 方法 sudo visudo として以下の行を探し, Defaults env_reset Defaults env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS" Defaults env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE" Defaults env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES" Defaults env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE" Defaults env_
先週からインターンはお休みをいただいてWebサービスを作っている. 今の見た目はこんな感じ(ま, まだ全然完成じゃないんだからねっ(言い訳1)) で, 要はiPhoneアプリのレビューまとめを作ろうとしている. 基準 最初に以下の項目について考えた. 実現性 - 最初は1~2週間で十分出来るもの コンテンツの確保と更新 - 自分がコンテンツ作者だと続かない ある程度の商圏 - 全く需要無いのもつらい, データで開発方針決めたりしたい 興味 - AppStoreのランキング以外の方法でアプリを知りたい 売上 - どうしたらより見てもらえるかなどのデータ欲しい 問題の解決 - しょぼくても何かしら世の中の役に立つこと 偉そうに並べているけどなかなか条件をクリア出来るものが思いつかずに3日ぐらいかかった. サービスの意味 こんなことを考えてた. 自分が探すとき, 「AppStoreのランキングを
Debianのときと同様, 標準のままではパッケージシステムで最新版をインストールすることが出来ないのでその対策. リポジトリを登録する. (URLは公式のページを参照) sudo rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm すると/etc/yum.repos.d/nginx.repoが以下のようになる. # nginx.repo [nginx] name=nginx repo baseurl=http://nginx.org/packages/centos/6/$basearch/ gpgcheck=0 enabled=1 後は普通にyumでインストールすると最新版が入る. sudo yum install -y nginx 起動する
正確にはシンタックス定義別に, だけれども. 設定したい言語のファイルを開く(シンタックスを対象の言語に設定する) Preferences > Settings – More > Syntax Specific – User として言語別の設定ファイル(.sublime-settings)を開く インデントの設定を記述して保存 インデントの設定は { "tab_size": 4, "translate_tabs_to_spaces": true, "trim_trailing_white_space_on_save": true } みたいな感じになる. (参考: Indentation Settings – Sublime Text 2 Documentation)
この前のWordpressサイトへの大規模攻撃で, 僕のところにもアラートメールがいっぱい飛んできて嫌になってしまったので, Github Pages + Octopress(画像はDropboxのpublicフォルダ)に移行することにした. 目次 Octopressのセットアップ 記事の移行 カスタムドメインの設定 Octopressのセットアップ 基本的にOctopress公式サイトの以下のページを見て, その通りにやればよい. Octopress Setup Deploying to Github Pages Configuring Octopress コマンドのみ簡単にまとめておく. なお, gitとRuby 1.9.3が必要. また, 前もってgithubにUSERNAME.github.ioというリポジトリを作っておくこと. git clone git://github.com
[2014/07/03追記] Rails4.0以上ならadd_reference使えばOK. [追記終わり] Stack Overflowに全く同じ状態の投稿があったのでその通りにして解決. 一応こちらにも書いておく. 現象 次のようにreferencesを指定してmigrationファイルを生成したとき, rails g migration AddUserCategoryToUsers user_category:references class AddUserCategoryToUsers < ActiveRecord::Migration def change add_column :users, :user_category, :references, :default => 1 end end db:migrateに失敗する. rake db:migrate == AddUser
※ 基本的にMac(|Linux)のターミナルから作業する場合の手順を書いています. Windowsの場合はsshとscpをどうにかするか, Linuxに乗り換えてください. 契約から起動するまではこちら -> さくらのVPSを契約して起動するまで 設定ファイルの編集に使うviの使い方はこちら -> vi(vim)の最低限の使い方 目次 最初の接続 MacからVPSにssh接続 rootのパスワード変更 とりあえずのセキュリティ対策 sshのポート変更 アプリケーションのアップデート 作業用ユーザの作成 ユーザの作成とパスワードの設定 sudoできるように 鍵認証でのssh接続 Macでrsa認証鍵を生成 公開鍵をVPSに転送 鍵を登録 sshdの設定変更 鍵認証でのssh接続の確認 iptablesの設定 設定ファイル編集 自動起動を有効化 MacからVPSにssh接続 まずはMacから
(CentOSの場合はこちら) 普通に sudo apt-get install nginx とすると, 0.7.xぐらいの古いバージョン(最新は1.4.0 @ 2013/4/24)がインストールされる. nginxのサイトをリポジトリに登録し, stableの最新版をapt-getでインストール出来るようにする. まず, パッケージの公開鍵をダウンロードしてapt-keyで追加する. (sudoをインストールしていない場合はここを参照) wget "http://nginx.org/keys/nginx_signing.key" sudo apt-key add nginx_signing.key 次に, nginxのサイトをリポジトリに追加する. sudo vi /etc/apt/sources.list で開いたファイルに以下を追加. deb http://nginx.org/pac
目次 環境 インストール 実装 テスト 参考 環境 Ruby: 2.0.0-p0 Rails: 3.2.13 paperclip: 3.4.1 インストール ImageMagickが必要なので, 確認して無かったらインストールしておく. which convert # 無かったら次でインストール brew install imagemagick 後はいつも通り, Gemfileにgem 'paperclip'を追加してbundle installすればよい. 実装 既存のUserモデルにアイコンとしてavatarを追加し, 登録, 編集, 表示が出来るようにする. まずは, rails g paperclip user avatarしてrake db:migrateしておく. 生成されたマイグレーションファイルの中身はこんな感じ. class AddAttachmentAvatarToUs
CentOS release 6.4 (Final) rbenv, ruby-buildのインストール sudo地獄なのでrootで作業を行う. su # 以下root cd /usr/local git clone git://github.com/sstephenson/rbenv.git rbenv mkdir rbenv/shims rbenv/versions groupadd rbenv chgrp -R rbenv rbenv chmod -R g+rwxXs rbenv git clone git://github.com/sstephenson/ruby-build.git ruby-build cd ruby-build ./install.sh として, /etc/profile.d/rbenv.shに export RBENV_ROOT="/usr/local/rb
BitbucketにOctopressのsourceブランチを置き, pushしたらJenkinsがGithub pageにデプロイするようにする. 目次 環境 公開鍵認証用の鍵の生成と登録 プラグインのインストール ジョブを作成 確認 なお, Jenkinsのインストールはこちら Octopressインストールはこちら を参照. 環境 CentOS release 6.4 (Final) 公開鍵認証用の鍵の生成と登録 cd /var/lib/jenkins sudo -u jenkins -H ssh-keygen -t rsa パスフレーズは設定しない. 出来た公開鍵(/var/lib/jenkins/.ssh/id_rsa.pub)の中身をBitbucketとGithubに登録しておく. また, BitbucketとGithubに接続してknown hostsに加えておく. sudo
Debianを最小構成(CUIのみ)でインストールする. 準備 Debianインストーラのisoファイルをダウンロード. 今回はSmaller CDsのamd64版を選択(50MB). VirtualBoxをダウンロードしてインストール. VMの作成 VirtualBoxを起動して新規にVMを作成する. 設定内容は下記. VM名, OSのType, Version以外はデフォルトのまま. VM名: Debian64 OS type: Linux OS version: Debian (64 bit) メモリ: 384MB virtual hard driveを作るか: create a virtual hard drive now hard driveのfile type: VDI (VirtualBox Disk Image) Storageの容量確保方法: Dynamically al
まとめ的に. まず, Package ControlをSublime Text 2にインストールする. 次に以下の3つをPackage Controlを使ってインストールする. Gauche (シンタックスハイライト) SublimeREPL (REPL) lispindent (インデント) 以上.
37signals謹製のPowというRackサーバを使うと, シンボリックリンクを貼るだけでバーチャルホストで切って開発できる. 環境 pow: 0.4.0 Rails: 3.2.12 rbenv: 0.4.0 インストール ターミナルで以下を実行するだけ. curl get.pow.cx | sh ちなみにアンインストールは curl get.pow.cx/uninstall.sh | sh 起動 インストール出来たら, ~/.pow/にプロジェクトのシンボリックリンクを作る. cd ~/.pow/ ln -s /PATH/TO/project project これでhttp://project.dev/にアクセスすると自動でアプリケーションが起動して表示される. rbenvを使っている場合 こんなエラーが出たら Error starting application Your Rack
このページを最初にブックマークしてみませんか?
『blog.nomnel.net』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く