アフィリエイト広告を利用しています

広告

この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
posted by fanblog
asahina-ryusei.net

ruby log を表示するメソッド。

string に文字列を入れてログ表示する。
require 'date'

def log string
  logtime = DateTime.now.strftime("%Y-%m-%d %H:%M:%S")
  return logtime + " " + string.to_s
end

rails トップページを作る。

rails では、デフォルトでは、 http://application/ にアクセスしても
アプリケーションのアクションにたどり着けない。
この様なアクセスに対しデフォルトで表示するアクション、いわゆる top ページを定義する。

まず、トップページ用コントローラーを作成する。
ruby script/generate controller Top index

作成したコントローラーにトップで見せたいコントローラー(xxxxs)を追加する。
class TopController < ApplicationController
 def index
  redirect_to :controller => 'xxxxs'
 end
end

config/routes.rb に以下を追加。
map.root :controller => 'top'

デフォルトの index.html が見えないように退避させておく。
mv public/index.html public/index.html.bk

これでもデフォルトのページが見えてしまう時は、ブラウザのキャッシュを一旦消去してみること。

rails No route matches への対応。

DBを使わずに controller(tests) だけ generate し、
controller に index action を作成。
views に index.html.erb を作成したが以下が出た。
No route matches "/tests" with {:method=>:get}

ルーティングがわかっていない様なので config/routes.rb に以下を追加してOK。
map.connect '', :controller => 'tests'

rails generate で views を作成する。

rails generate で views だけって作れるのか?
ふと思ったのでやってみたけど作れなかった。
% ruby script/generate views test
Couldn't find 'views' generator
% ruby script/generate view test
Couldn't find 'view' generator
% ruby script/generate view
Couldn't find 'view' generator

controller を作る時に views も作成されるようです。
% ruby script/generate controller test
exists app/controllers/
exists app/helpers/
create app/views/test
exists test/functional/
exists test/unit/helpers/
create app/controllers/test_controller.rb
create test/functional/test_controller_test.rb
create app/helpers/test_helper.rb
create test/unit/helpers/test_helper_test.rb

model を作る時には、views は、作られなかった。
% ruby script/generate model test
exists app/models/
exists test/unit/
exists test/fixtures/
create app/models/test.rb
create test/unit/test_test.rb
create test/fixtures/tests.yml
exists db/migrate
create db/migrate/20100518132656_create_tests.rb

rails button_to の submit 的な使い方。

以下は、button_to の書式。
button_to(name, options = {}, html_options = {})

"submit" という表示で、アクションが "submit" な確認メッセージ付きボタンの例。
button_to("submit", :action => "submit", :confirm => "Are you sure?" )

でもできなかった( :confirm が出ない)。正解は、以下。
button_to("submit", { :action => "submit" } , :confirm => "Are you sure?" )

どうも、第二引数を "{ }" で囲まないと html_options(第三引数) まで 第二引数として扱ってしまうみたい。

ちなみに html_options: で使えるのは、以下の3っつ。
:method, :disabled, :confirm

ruby 時間を取得する。

date を require して時間を取得する。
strftime でフォーマットを指定する。
require 'date'
yyyy = DateTime.now.strftime('%Y')
mm = DateTime.now.strftime('%m')
dd = DateTime.now.strftime('%d')

cisco bgp enforce-first-as

cisco で ebgp を張った際に、対向のASからの経路が最初の AS番号として UPDATE に含まれていないと以下の様に peer を落とす。
これは、 cisco のデフォルトの仕様みたいです。

May 17 09:46:13.218 JST: %BGP-5-ADJCHANGE: neighbor 10.0.0.2 Up
May 17 09:46:13.423 JST: %BGP-5-ADJCHANGE: neighbor 10.0.0.2 Down BGP Notification sent
May 17 09:46:13.423 JST: %BGP-3-NOTIFICATION: sent to neighbor 10.0.0.2 3/11 (invalid or corrupt AS path) 9 byte ......
May 17 09:46:13.423 JST: BGP: 10.0.0.2 Bad attributes .........


これを防止するのには、以下を設定する。
no bgp enforce-first-as


ちなみに、juniper, foundry には、この機能は、無いみたい。

NOTIFICATION Message Format については、以下を参照
RFC 4271 BGP-4

PostgreSQL テーブル一覧を表示する。

"postgres" は、ユーザー名。
"db_name" は、データベース名。
psql -U postgres db_name -c "\dt"

PostgreSQL DB一覧を表示する。

"postgres" は、ユーザー名
psql -U postgres -c "\l"

rails migration でできる事。

VERSION を指定してその時の状態に戻ったり進んだりが可能。VERSION 番号は、db/migration 以下にあるファイル名の14桁。省略はできない。必ず指定する。
rake db:migrate:up VERSION=201005010114
rake db:migrate:down VERSION=201005010114

カレントバージョンの確認
rake db:version

ひとつ前の状態に戻りたい。
rake db:rollback

3っつ前の状態に戻りたい。
rake db:rollback STEP=3

本番環境でひとつ前の状態に戻りたい。
rake db:rollback RAILS_ENV=production
<< 前へ     >>次へ
×

この広告は30日以上新しい記事の更新がないブログに表示されております。