日々の記録。

プログラミングのメモや感じた事などを記録。

rails

コンピュータプログラミング小史とこれから

独断と偏見に基づく個人の考察でプログラミング小史と、現状のWebプログラミングについての不満と課題についてです。 長文なので先に言いたかったことを書くと 「Railsって、クライアントサイドも自由に扱えない限りDRYにはなり得ないよね」 ってことです。 …

VirtualBoxにCentOS, mysql, ruby, railsをインストールする

案の定いくつかはまったところがあったのでメモに残します。 環境 osx 10.9 virtualbox 4.3.8 centos 6.5 ruby 2.0.0-p451 ※ p251はbugがあるためrailsでこける可能性があります。 rails 4.0 前提 必要に応じて、各コマンドはsudoで実行してください。 CentO…

rails4 jQuery.readyが働かない場合の対処法

rails4から導入されているturbolinksという機能が影響しているらしい。 参考 Rails 4のturbolinksについて最低でも知っておきたい事 Rails4でturbolinksを謳歌するためのまとめ とりあえずの対処 // $(document).ready(function() {}) ↓に置き換える。 $(doc…

rails4 fields_forの要素に対してはfile_fieldが働かない?

Rails4でfields_forの要素に対して、file_fieldを行ってもファイルアップロードが行えなかった。 form_forの要素に対して、行う必要がある。 例 NGな例 <%= form_for(@model) %> |f| <%= f.fields_for(@model.file) %> |ff| <%= ff.file_field :fileinfo %> …

rails 既存DBを使ってrailsしてみた。

環境 osx10.9.1 ruby2.0.0 rails4 MySQL5.6.x 経緯 既にMySQL上に存在するtableを使ってrailsしてみた。 MySQLと接続する 下のサイトを参考にして、database.yamlを定義。 - development: adapter: mysql2 encoding: utf8 database: my_db_name username: ro…

rails modelの属性設定メソッドをオーバーライドしてみる

モデルのある属性を変更した際に、別の属性も併せて変更したかったので、モデルの属性を設定するメソッドを定義してみました。 例 やりたいこと。 Todoクラスに、0〜100の範囲の進捗状況という属性があって、0からの変化時に開始日を設定、 100に変化したと…

rails libディレクトリに配置した自作ライブラリが読み込まれないときに試したこと

前提 rails 3.2.13 ruby 1.9.3 内容 rails で 自作ライブラリCodegenLibというライブラリを利用する際、中々ロードできなかったのでそのときのメモ。(色々な無知が重なった結果の事故) 結果 結果的には、以下に注意すること application.rbにautoloadのパ…

aws で rails serverに失敗. execjs/runtimes.rb:51:in `autodetect': Could not find a JavaScript runtime.

rails 3.2.13, ruby 1.9.3の構成でawsのec2上でrails serverを実行したら上記のエラー発生。 ここを参考 解決方法 Gemfileに以下を定義 gem 'execjs' gem 'therubyracer' bundle installでインストール rails serverで起動!!

rails 4.0.0をインストールした後に特定のバージョンを入れ直すには?

4.0.0は試したいけど「今のところ」不要なのでアンインストールした。 gem でrails 4.0.0をアンインストール。 gem uninstall rails -v=4.0.0 gem uninstall railties -v=4.0.0 railtiesも削除しないと、rails --versionの結果は4.0.0のままだった。 gem ins…

aws rails 3.2.13 をインストールする

事前にruby 1.9.3をインストールしておく 以下を実行する. gem install rails --version "3.2.13" gemでパッケージのバージョンをするためには--versionを指定する。 参考はここ http://webos-goodies.jp/archives/51106257.html

rails link_toでget,post,deleteの指定

methodで指定する。(rails 3.2.3) <%= link_to :logout, logout_path, method: :delete %>

rails モデルの属性名を変更する

Userクラスのpasswordをpassword_digestに変更したい 修正前のUserクラス rails g scaffold user name:string password:string このpasswordをpassword_digestに変更する 修正方法 1. 修正用のmigrationを生成する rails g migration RenamePasswordToUser p…

rails とあるモデルにpasswordを追加する例

0. 前提 動作環境 os x: 10.8.4 ruby: 1.9.3 rails: 3.2.13 1. とあるモデルとしてuserを生成する ポイントは、password_digestを生成すること rails g scaffold user name:string, password_digest:string 2. Userクラスの編集 ポイントは、 1. has_secure_…

「RailsによるアジャイルWebアプリケーション開発 第4版」のメモ

RailsによるアジャイルWebアプリケーション開発 第4版のチュートリアルを試してのメモ 新しいWebアプリケーションの生成方法 rails new application_name 例 rails new depot railsのインストール状況の確認方法 rake about モデル、ビュー、コントローラ、…

rails dbの状況確認

現在のmigrateのバージョン rake db:version migrateの各状況 rake db:migrate:status 参考 rake

rails ActiveRecord モデルMovieに属性kindを追加する。

rails g migration AddKindToMovies kind:references rake db:migrate app/model/movie.rb,kind.rbを必要に応じて編集する。 詳細はrails guide参照 rails g migrationでdb更新用のソースがdb/migrateに生成される。 書式としては、以下の通り。rails g migr…

rails arel_tableでjoinしてidが重複する場合の対処方法

AテーブルとBテーブルを単純にjoinしてオブジェクトを取得すると、idがどちらのものか判別できないという問題が発生した。(後側のテーブルのidが採用される?) NG例 本当はa.idがほしいのにb.idが参照された。 a_table = A.arel_table b_table = B.arel_tab…

Rails リレーションのあるモデルでのorder指定

モデルをjoinsした後にorderする。 compositeをitem一覧のitemTypeのID順に取得する。 Composite has_many items item has_one item_type Composite.joins(:items).order('item_type_id')

ruby on rails 自動生成したファイルの削除

rails destroy model クラス名 で削除可能。modelの部分は自動生成したものに合わせること。