Kobitoの3つの特徴 Markdownとリアルタイムプレビューで快適に入力 Syntax Highlightでスニペットをきれいに記録 ボタンひとつでコードを簡単に公開
Capistrano deployment tips collection document summarized in 3 sentences: The document shares tips for using the Capistrano automation tool, including recommendations for colorizing Capistrano commands with the capistrano_colors plugin. It also describes using the capistrano-ext plugin to better organize different deployment configurations and set environment-specific options. The document provide
Capistranoを使って、Ruby初心者でもRuby以外のソースコードをデプロイできるようになるまでの流れです。 Rubyもよくわからないし、デプロイツールもろくに使ったことないけど、 Capistranoを使ってコードをデプロイしたい。という人に特に向けた記事です。 私自身そういう人でした。 私の理解不足の部分が多々ありますが、とにかくCapistranoを使ってデプロイができることを目的とします。私は今回の方法で、PHPのコードをデプロイしています。 「もう手動デプロイは嫌だ」「デプロイツール使いたい」「なんかデプロイツール使わないとヤバそう」と思っている方々にとってちょうどいい記事になればいいなと。 Capistranoデプロイができるまで(目次) Capistranoってどういうもの デプロイの流れの概要 デプロイ先サーバーとの接続条件 Ruby、RubyGemsのインストール
はじめに この記事はGREE Advent Calendar 2013年の21日目です。お楽しみください! こんにちは、アゴひげがダンディーだと評判の九岡です。GREEでは、JavaやScalaを布教するための土台を固めるため、デプロイや監視の仕組みづくりなどを横断的にやっています。今回はその過程で得られた知識を「Capistrano 3の入門記事」という形で共有させていただきます。 この記事ではCapistrano 3の基礎をご紹介します。Capistrano 3はRubyをベースにしたサーバ操作およびデプロイの自動化ツールです。Capistrano 3を利用することで、デプロイなどの複雑なサーバ操作を自動化することができます。ここの記事では、特にデプロイに焦点をあてながら、Capistranoでサーバ操作を自動化する考え方と実現方法をご説明していきます。 Capistrano 3の習得
6. 脆弱性のあるアプリケーション Copyright © 2010-2014 HASH Consulting Corp. 6 @books = Book.where( "publish = '#{params[:publish]}' AND price >= #{params[:price]}") 山田 祥寛 (著) Ruby on Rails 4 アプリケーションプログラミング 技術評論社 (2014/4/11) に脆弱性を加えましたw ※元本に脆弱性があるわけではありません 7. UNION SELECTにより個人情報を窃取 Copyright © 2010-2014 HASH Consulting Corp. 7 priceに以下を入れる 1) UNION SELECT id,userid,passwd,null,mail,null,false,created_at,updated
Rails で STI(Single Table Inheritance)を使った時の、コントローラの実装をどうするか?という事について書いてみたいと思います。 STI(単一テーブル継承)とは オブジェクト指向の基本概念として、あるクラスを元にサブクラスを定義する継承があります。 この継承は、プログラミング言語ですとと予め機能が提供されていることが多いですが、 RDB ですとテーブル構成によって表現する場合があります。 *1 今回使う STI は、一つのテーブル内に継承関係にあるクラスのカラムを全て持ってしまう方法です。 例として Player クラスを継承した Footballer クラスと Cricketer クラスがあるとします。 親クラスに共通のプロパティ、子クラスがそれぞれのプロパティを持っていますが、これを STI で表現すると以下になります。 テーブルのレコードがどちらの型に
はじめに 他の人が書いたコードを読んでいるときに時々気になるのが、英語の間違いです。 特に動詞、名詞、形容詞の使い分けが間違っていたりすると、かなり違和感を感じます。 そこで今回はモデル(=クラス)やメソッドに名前を付けるときの基本的な原則をまとめてみます。 また、英文法的に正しい品詞が選べるようになるための習慣についても最後に説明します。 想定する言語/フレームワーク この記事の説明ではRuby/Ruby on Railsを想定しています。 ただし、基本的な考え方は他の言語でも同じように使えるはずです。 モデルの名前は名詞にする 例: 「支払い情報」を表すモデルを作りたい場合 × Pay ○ Payment 「支払う = payか。よし。」でモデルを作ってはいけません! payは動詞で、payの名詞形がpaymentです。 Payモデルではなく、Paymentモデルを作りましょう。 例:
Object#tapはそのブロックの評価結果を捨てるという風変わりなメソッドです。これは主としてメソッドチェーンにおける途中経過を覗き見るために使われます。 "charlie".upcase.tap{ |s| p s } # => "CHARLIE" .reverse.tap{ |s| p s } # => "EILRAHC" .gsub(/[aeiou]/i,'*') # => "**LR*HC" tapの副作用を使う もっとも、その評価結果を捨てるというユニークな特徴をうまく使えば、もっと面白いことができます。 例えば、ある変数の値を取得した上でその変数の値をリセットしたい場合を考えます。通常は次のように実装するのでしょう。
追記(2014/6/25) homebrewのreadlineが6.3.5に更新され、Ruby 2.xでも問題なくインストールできる状態となったそうです。(thanks to:masawadaさん) この記事はrubyが2.1.1、homebrewのreadlineが6.3.3時点の情報であり、おそらくもう必要のない過去のものになってるかと思われます。 (何も調べてないので分かりません。) この記事は残しますが、Rubyのインストール時にエラーが発生した場合は別の原因であると思われます。 この記事を参考に、readlineを過去のものに戻して使ってた人へ さっそくbrew updateしてみたところエラーが出ました。 readlineの過去のバージョンを使用するために、Formulaをgit checkoutで過去のものにしたのが原因です。 以下の記事を参考に、正常にubgradeできるよ
行ロックとは 行ロックとは、テーブルの同一レコードに対して、複数同時に更新できないように制限する仕組みのことです。 Ruby on RailsのActiveRecordには2種類のロック方法があります。 楽観的ロック(Rails依存) 悲観的ロック(DBMS依存) それぞれの違いや使い方について解説していきたいと思います。 楽観的ロック 楽観的ロックとは、DBMSの機能に頼らずロックバージョンをレコードに保存しておくことで、取得時と変更時にロックバージョンに変更がないか確認し、変更があった場合は例外を発生させる方法です。 ロックするタイミング データ更新時 データを複数同時に取得することができるが、途中で更新されていた場合は、更新できない 仕組み テーブルにlock_versionフィールドを追加する lock_versionが書き換わっていたらActiveRecord::StaleObj
2013年03月22日16:17 Ruby Railsで大量のデータをまとめて更新するならfind_each使うよね ということでメモ程度ですが書いときます。 Railsには find_each というメソッドが用意されています。通常の each メソッドを使用すると、全データをまとめてメモリに展開してから処理を開始します。そのため、十分にメモリに載るデータ量であれば何も問題ないですが、数百万、数千万というデータ量になってくるとメモリに載りきらずに溢れてしまって大変なことになります。 find: 全データをメモリに展開してから処理 find_each: 少しずつデータをメモリに展開しつつ処理 そういうときには find_each メソッドを使いましょう。これは少しずつデータをメモリに展開して処理を行います(デフォルトでは1,000件ずつ)。全部まとめてではなくちょっとずつメモリに展開してく
to_proc -> Proc[permalink][rdoc][edit] self に対応する Proc オブジェクトを返します。 生成される Proc オブジェクトを呼びだす(Proc#call)と、 Proc#callの第一引数をレシーバとして、 self という名前のメソッドを残りの引数を渡して呼びだします。 生成される Proc オブジェクトは lambda です。 :object_id.to_proc.lambda? # => true 明示的に呼ぶ例 :to_i.to_proc["ff", 16] # => 255 ← "ff".to_i(16)と同じ 暗黙に呼ばれる例 # メソッドに & とともにシンボルを渡すと # to_proc が呼ばれて Proc 化され、 # それがブロックとして渡される。 (1..3).collect(&:to_s) # => ["1", "2
週末の昼下がりに、 Railsのガイドを読んでたら、以下のようなコードに遭遇したのでメモしておきます。 def logged_in? !!current_user end 気になったのは、エクスクラメーションマークが2つ付くところです。 通常、!(エクスクラメーションマーク1つ)の場合は否定(Not)になります。 じゃー、!!(エクスクラメーションマーク2つ)付けるとどうなるの? って気になったので調べてみました。 !! (The double bang / double not) in Ruby - Momoro Machine 先に結果を見た方が早いと思うので、コードも引用させてもらいます。 >> !!active => true >> active = false => false >> !!active => false >> active = nil => nil >> !!ac
平素よりQA@ITをご利用いただき、誠にありがとうございます。 QA@ITは「質問や回答を『共有』し『編集』していくことでベストなQAを蓄積できる、ITエンジニアのための問題解決コミュニティー」として約7年間運営をしてきました。これまでサービスを続けることができたのは、QA@ITのコンセプトに共感をいただき、適切な質問や回答をお寄せいただいた皆さまのご支援があったからこそと考えております。重ねて御礼申し上げます。 しかしながら、エンジニアの情報入手方法の多様化やQAサービス市場の状況、@ITの今後のメディア運営方針などを検討した結果、2020年2月28日(金)15:00をもちましてQA@ITのサービスを終了することにしました。 これまでご利用をいただきました皆さまには残念なお知らせとなり、誠に心苦しく思っております。何とぞ、ご理解をいただけますと幸いです。 QA@ITの7年間で皆さまの知識
2020-06-02 Comments/Subversion/TortoiseSVNメモ/コミットしたログメッセージが編集できない 2020-03-31 ゲームを作る上でのバッドノウハウ/十字キーがボタンとして認識される 2019-11-12 Comments/Wiki/PukiWiki/スパム(spam)を防止する方法 2019-11-01 Delphi/XML/Delphi付属のXMLライブラリ 2019-08-27 Comments/SaGa2 秘宝伝説/モンスター一人クリア 2019-07-11 Comments/git/git rebaseを元に戻す方法 2019-06-08 VBA/関数呼び出し時に「オブジェクトが必要です。」というエラーが出る 2019-03-07 Comments/PhotoShop/「下のレイヤーとグループ化」はどこいったの? 2019-02-06 Rub
事前準備 Ruby 2.0.0-p0のインストールに当たってopenss-develパッケージが必要です。 openss-develパッケージがない場合はあらかじめインストールしておきます。 # yum install openssl-devel rbenv環境の最新化 ruby-buildのアップデート 公式手順通りにアップデートします。 Installing as a standalone program (advanced) - sstephenson / ruby-build rootにスイッチします。 $ su - パスワード: ruby-build取得先ディレクトリへ移動します。 # cd /usr/local/src/rbenv/plugins/ruby-build git pullして最新のソースを取得します。 # git pull origin master remote
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く