Prog-me.

Rails中心、機械学習も、インフラもセキュリティも

2015-04-01から1ヶ月間の記事一覧

gets.chompってなに?[Ruby]

ProgateのRuby応用編をいじっていて思った... get.chompってどんな変数名だよ。 => chompは変数にたいして文字列と一緒に表示したときに改行を防ぐメソッドらしい! 便利やな〜。

ruby のinitializeについて

initializeという特別なメソッドを定義すると、newメソッドでインスタンスを生成するときに、同時にこのメソッドが呼ばれます。 Rubyのオブジェクト指向については、 Progate(プロゲート) | Learn to code, Learn to be creative.がおすすめです!

user.update_attributeとは

user.update_attribute(:name, "山本")みたいに使うよ。でもvalidationがかからないから注意(だからこそ使えるポイントもありそう。unique制限かけずに更新したいときとか。)

whereの否定文ってどうやって書くの?

where.not("position > ?", @product.position)で否定になるよ〜〜〜〜 not(条件)ね。

Pryでよく使うコマンド

whereami 現在のコンテキスト周辺のコードを表示 show-models # すべてのモデルを表示する next # 次の行へ実行 ソースは Railsの開発効率をあげる - Pryを使ってRailsのコンソールをパワーアップ & デバッグをする - Rails Webook

モデルクラス名、テーブル名、ファイル名間の名前変換メソッド rails

humanizeメソッドで、最初を大文字にして、_idとかをカットすることができる。 'author_id'.humanize たとえば、上のコードならAuthorってなる。 クラスに変換したいときとかに便利。。。なのかな? 逆っぽいメソッドとして、underscoreがある。 これはクラ…

特定のcommit時の状態にgitで戻す

git revert 427855f94fee2d689db33f2f3d433c55f4f110ff <=コミット番号で特定のcommit時の状態まで戻れる ソース: gitリポジトリを特定のcommitバージョンまで戻す方法 - AorBorF

rails: 指定のmigrationをdownする(戻す)

rake db:migrate:down VERSION=20150421160550

rails: 数字かどうかでvalidationかける

validates :gender, numericality: true # 数値かどうか ソースは Railsのバリデーションでチェックしてみる - yk5656 diary

rails gem: acts_as_nested_set でツリー構造を表現 使い方

acts_as_nested_setってなにをするものかというと、親の下に子、子の下に孫といった階層づけされたデータを簡単にあつかえるようにしてくれるもので、長所としてはそういった階層下されている情報をSQL一発で全て取りだせる事にあるそうだ。 create_table :s…

rails: collection_selectでデータベースからカラムやvalueを動的にひっぱってくる

collection_selectの文法 <%= f.collection_select <属性名>, <プルダウンメニュー表示用の配列データ>, <valueとして扱うカラム名>, <表示用のカラム名>, <オプション> %> <%= f.collection_select :origin_id, Origin.all, :id, :name %> みたいなかんじ。 ソースは [Rails 4.x] For</valueとして扱うカラム名>…

rails: routes.rbのasって?

match '/search' => 'search#search', :as => 'search' # SearchController#search とかくと <%= link_to search_path, 'Click Here to Search!' %>となる。 つまり、このままじゃpath名がうまく生成されないんだけど、as searchとすることでsearch_pathって…

collectionとmemberのルートのちがい rails

GET /matomes/search で search アクションを呼ぶには以下のように設定する。 # config/routes.rb resources :matomes do collection do get :search end end :id 付きのルーティングの場合はmemberを利用する。GET /matomes/:id/preview とする場合。 # con…

適用されていないマイグレーションを確認する

$ rake db:abort_if_pending_migrations

既存のDBにユニーク制約をつける

rails g migration add_カラム名_uniqueness_index def self.up add_index :データベース名, :カラム, :unique => true end def self.down remove_index :データベース名 , :カラム end validates :uniquenessはuniquenessを保証しないのでDBにindexをつけま…

link_to で任意のパラメータを送る

<%= link_to "Show", other_page_path(id: 1, state: "valid") => params[:state] でコントローラで取れる。

migration pendingってgithub上のテストで怒られるとき

schema.rbファイルをcommitしわすれてる可能性アリ。

railでオブジェクトの並び替え

Object.order('column-name ASC') ASCは昇順。昇順ってのは1,2,3,4,5...みたいな”自然な”順番のこと。

MysqlでのUPDATEの書式

[例1]idカラムの値が10のデータのpriceカラムの値を1000に設定する UPDATE uriage SET price = 1000 WHERE id = 10;UPDATE & SET の組み合わせ、忘れやすいので注意!

railsで既存のカラムを削除したり追加したり

カラムを追加する rails generate migration Addカラム名Toテーブル名 カラム名:型名 カラムを削除する rails generate migration Removeカラム名Fromテーブル名 カラム名:型名

mysqlを直接操作してカラムを削除する

何回かbranch変えて作り直してたら、 Mysql2::Error: Table 'user_categories' already exists: CREATE TABLE `user_categories` (`id` int(11) auto_increment PRIMARY KEY, `name` varchar(255), `created_at` datetime NOT NULL, `updated_at` datetime N…

rails : springでひっかかった

springでハマったのでメモ。 ググったら Couldn't run migration after spring update in Rails - Stack Overflow が出た。だけど、ここの解答である"spring stop"は私には効かなかった... なので、もうひとつの解答bundle updateを試してみる。今度は別のエ…