tomcatでリモートデバッグしようとしてハマったのでメモ。

デフォルト設定のまま jpda オプションを付けて

./catalina.sh jpda start

だけだと、リモートから接続できない。

JPDA_ADDRESSの指定が必要

export JPDA_ADDRESS=8000
./catalina.sh jpda start

デフォルトだと、

address=localhost:8000

となっている。

address=8000

となるようにしないと外部からの接続を受付けないみたい。

[javascript] jQueryを使ったのモーダルライブラリthickbox

これ、めちゃ簡単にモーダルポップアップが出せる。

まずはjsとcssを読み込む。

<script src="/thickboxjs" type="text/javascript"></script>
<link href="/thickbox.css" media="all" rel="stylesheet" type="text/css" />

で、モーダルで表示したいlinkタグにthickboxってクラスを割り当てる

<a href="/xxxxx?height=100&width=200" class="thickbox">くりっく</a>

注意点としては、サイズ指定

?height=100&width=200

の部分が無いとうまく動かない。
後ろに、勝手に&random=xxxxxxxxxxってパラメータ付加されちゃうので。

[ruby][rails] Ajaxおさらいとactionの書き方

AjaxなLinkを作るときは、link_to_remote

  link_to_remote 'text', :update => :target_id, :url => url

こんな事さえ忘れるなんて。。やっぱ使ってないとダメだね。

ボタンの場合は

  submit_to_remote 'tag_name', 'text', :update => :target_id, :url => url

こんな感じ。

controller側では

  request.xhr?

Ajaxリクエストか否か判断できるんで、
例えば、入力フォームをajaxで出して、登録ボタンを押すと入力した内容で登録しにいく。
みたいな感じの処理だったら、

  def new
    return render :partial => :form
  end
  def create
    foo = Foo.new(params[:form]).save!
    redirect_to :action => show, :id => foo.id
  end

こーやって書くよりも、

  def new
    return render :partial => :form if request.xhr?
    foo = Foo.new(params[:form]).save!
    redirect_to :action => show, :id => foo.id
  end

こんな感じで書くと見やすいと思う。

[html][css] tableタグを使わないテーブルレイアウト

まずリストを作る。

<ul>
 <li>
  <div>名前</div>
  <div>ニックネーム</div>
 </li>
 <li>
  <div>宮代大輔</div>
  <div>ぷりんす</div>
 </li>
 <li>
  <div>太郎</div>
  <div>元首相</div>
 </li>
</ul>

こんなんになる。


  • 名前
    ニックネーム

  • 宮代大輔
    ぷりんす

  • 太郎
    元首相

ulタグにclassを定義してスタイルを当てる
html

<ul class="table">
....
</ul>

css

.table{list-style:none;mergin:0;padding:0;}
.table li{clear:both;}
.table li div{display:block;float:left;}

こんなんになる。


  • 名前
    ニックネーム

  • 宮代大輔
    ぷりんす

  • 太郎
    元首相

各divにclassを定義して幅を決め、borderで線を入れる。
html

...
  <div class="col1 head">名前</div>
  <div class="col2 head">ニックネーム</div>
...
  <div class="col1">宮代大輔</div>
  <div class="col2">ぷりんす</div>
...

css

// 幅
.col1{width:100px;}
.col2{width:200px;}
// 線
.table li div{border-right:1px solid #000;border-bottom:1px solid #000;}
.head{border-top:1px solid #000;}
.col1{border-left:1px solid #000;}

こんなんになる。


  • 名前
    ニックネーム

  • 宮代大輔
    ぷりんす

  • 太郎
    元首相

[ruby][rails] ドロップダウンの生成

Hashをラベルの要素にする場合

select_tag('id', options_for_select({:label=>:key},:default_key))


さらに、onChangeで更新

select_tag(〜〜〜, :onchange => remote_function(:update => 'target_id', :url => {url}, :with => "'parameter_key=' + value"))


KeyとLabelが逆なHashを使う場合は

hash.invert

これでkeyとvalueが逆になる

[ruby] 環境構築メモ

rvmインストール→rubyインストール→gemset作成→railsとかインストール
ってするんだけど、

/usr/bin/env

が無いって怒られた。

$ sudo apt-get install coreutils

これでenvが作られる。

あと、sudoしてないのに
~/.rvm じゃなくて /usr/local/rvm にインストールしにいこうとして権限が無いって怒られた。
こっちは、rootでrvmインストール→アンインストール で治ったみたい。

user$ sudo su -
>>[password]
root$ bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)
root$ rvm implode
root$ exit
user$ bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)

こんな感じ。