@hoge.each_with_index do |fuga, i|
print(i)
2013年07月30日
2013年07月26日
Ruby on RailsでJSONを出力
デバッグなどでオブジェクトを1次的にJSONに変換して出力するには以下のコードを書く
personal = {'name' => 'Yamada', 'old' => 28}
render :json => @category
タグ:JSON
Ruby on Railsでコンソールモード
以下のコマンドでコンソールモードになり、直接Rubyのコマンドを実行できます。
コンソールモードの終了はControl + D
rails c
コンソールモードの終了はControl + D
Ruby on RailsでDBを操作する
以下のコマンドでDBコンソールになるので、直接DBを操作・参照できるようになります。
デフォルトのsqliteなら.tablesでテーブルの一覧を表示、.helpでヘルプを表示、.quitでDBコンソールの終了を行うことができます
rails dbconsole
デフォルトのsqliteなら.tablesでテーブルの一覧を表示、.helpでヘルプを表示、.quitでDBコンソールの終了を行うことができます
sqlite > .tables
sqlite > .help
sqlite > .quit
2013年07月19日
Ruby on Railsのdb:seedを使ってデータの流し込みを行う
db/seed.rbの内容を以下のように変更
その後、コマンドラインを以下のコマンドを入れるとデータが投入される
複数のデータを投入したい場合は以下のようにループを使って挿入
tableの初期値のように一度しか投入したくない場合は以下のように設定しておく
# coding: utf-8
Tweet.create(:message => "hoge");
その後、コマンドラインを以下のコマンドを入れるとデータが投入される
rake db:seed
複数のデータを投入したい場合は以下のようにループを使って挿入
# coding: utf-8
5.times do |no|
Tweet.create(:message => "hoge #{no}")
end
tableの初期値のように一度しか投入したくない場合は以下のように設定しておく
# coding: utf-8
message = Tweet.first
unless message
5.times do |no|
Tweet.create(:message => "hoge #{no}")
end
end
2013年07月12日
include?で指定した値が配列に入っているかどうかチェック
Rubyのinclude?は配列に引数で指定した値が入っている場合はtrueを入っていない場合はfalseを返す
@hoge = ["hoge","fuga"]
@message = @hoge.include?("hoge")
#true
@hoge = ["hoge","fuga"]
@message = @hoge.include?("bar")
#false
タグ:include?
Ruby on Railsのpresent?で値が入っているかどうかチェック
Ruby on Railsのpresent?は変数や配列に値が入っている場合はtrueを入っていない場合はfalseを返す
@message = @hoge.present?
#false
@hoge = "fuga"
@message = @hoge.present?
#true
Ruby on Rails で利用できるHamlの文法
コントローラーから受け取った変数などを出力
=@message
-を利用するとrubyのコードが書ける。
例えばif文
-if @messege
hoge
-else
fuga
変数の定義
-hoge = 'fuga'
=hoge
ラジオボタンの出力
= radio_button_tag :check, "1"
= radio_button_tag :check, "2"
以下のHTMLが出力される
<input id="check_1" name="check" type="radio" value="1" />
<input id="check_2" name="check" type="radio" value="2" />
Ruby on Rails でHamlを使う
Gemfileに以下のgemを追加
bundle installよりgemのインストールを行います
viewのerbファイルをhamlファイルに変更します。
index.html.erb -> index.html.haml
後はviewの内容をhaml形式に返ればOK
group :assets do
gem 'haml-rails'
end
bundle installよりgemのインストールを行います
bundle install --path .bundle
viewのerbファイルをhamlファイルに変更します。
index.html.erb -> index.html.haml
後はviewの内容をhaml形式に返ればOK
%h1
=@message
80ポートへのアクセスを3000ポートに転送するコマンド
sudo ipfw add 100 fwd 127.0.0.1,3000 tcp from any to me 80
Ruby on Railsで開発している際に便利
Ruby on RailsでHello World
まずは、config/routes.rbに以下の一文を追加
app/controllers/helloworlds_controller.rbを作成し以下の内容にする
views/helloworlds/index.html.erbを作成し以下の内容にする
http://localhost:3000/helloworldsにアクセスするとコントローラーで設定した'Hello World'が表示されます。
値を配列で渡したい場合はコントローラーとビューを以下のように変更することで対応できます。
get 'helloworlds' => 'helloworlds#index'
app/controllers/helloworlds_controller.rbを作成し以下の内容にする
class HelloworldsController < ApplicationController
def index
@message = 'Hello World'
end
end
views/helloworlds/index.html.erbを作成し以下の内容にする
<%= @message %>
http://localhost:3000/helloworldsにアクセスするとコントローラーで設定した'Hello World'が表示されます。
値を配列で渡したい場合はコントローラーとビューを以下のように変更することで対応できます。
class HelloworldsController < ApplicationController
def index
@messages = ["apple", "orange", "lemon"]
end
end
<% @messages.each do |message| %>
<%= message %>
<% end %>
2013年07月10日
Ruby on Rails で Compass
Ruby on RailsはデフォルトでSassは使えるがCompassが使えないので別途インストールが必要です。
Gemfileを開き'compass-rails'を追加
bundle installよりgemのインストールを行います
初回はCompassの初期化を行います。
これでScssファイルでCompassが使えるようになります。(@import "compass";は忘れずに)
config.rbは/config/compass.rbとして生成されています。
Gemfileを開き'compass-rails'を追加
group :assets do
gem 'sass-rails', '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
gem 'compass-rails'
gem 'uglifier', '>= 1.0.3'
end
bundle installよりgemのインストールを行います
bundle install --path .bundle
初回はCompassの初期化を行います。
bundle exec compass init rails
これでScssファイルでCompassが使えるようになります。(@import "compass";は忘れずに)
config.rbは/config/compass.rbとして生成されています。