-->
./
<!-- フラ&#65533;ュが見れな&#65533;のためにここに何か書&#65533; --> フラ&#65533;ュがインス&#65533;&#65533;ルされて&#65533;&#65533;たいで&#65533;&#65533;&#65533;

2010年04月03日

vim-snipmate-ruby-snippets

kaichen's vim-snipmate-ruby-snippets at master - GitHub
git clone git://github.com/kaichen/vim-snipmate-ruby-snippets.git
cd vim-snipmate-ruby-snippets/
./install.sh
 これだけで使えるようになりました。

posted by hirono at 02:46| Comment(0) | TrackBack(0) | Rails

2010年04月02日

[Ruby]サムネイル画像一括作成のスクリプト

#!/usr/bin/ruby -Ku

require 'rubygems'
require "RMagick"
file_dir = "public/images/up_files"
thumbnail_dir = "thumbnails"
Dir.chdir(file_dir)
Dir.mkdir(thumbnail_dir) unless FileTest::directory?(thumbnail_dir)

  Dir.glob("*.{jpeg,jpg,png,gif}") do |f|
      if File.exist?("#{thumbnail_dir}/#{f}")
         print "#{f}のサムネイルファイルは既に存在するのでスキップします。\n"
      else
        file=File.read(f)
        img = Magick::Image.from_blob(file).shift
        height=100
        width=(img.columns.to_f * height.to_f / img.rows.to_f).to_i
        rsize=img.resize(width, height)
        rsize.write(thumbnail_dir + '/' + f.gsub(/.*\/(.*)\.(.*)/, '\1_thumbnail.\2'))
        print(file_dir + '/' + thumbnail_dir + '/' + f.gsub(/.*\/(.*)\.(.*)/, '\1_thumbnail.\2') + "が作成されました。\n")
      end
  end



Powered by ScribeFire.

posted by hirono at 03:56| Comment(0) | TrackBack(0) | Rails

2010年04月01日

RMagickで縦幅を基準に縦横比を保ってリサイズ

RMagickの使い方のメモ | 山本隆の開発日誌
<code>width = 100
height = (img.rows.to_f * width.to_f / img.columns.to_f).to_i
img.resize(width, height)
</code>


 上記ページを参考にしました。縦幅を基準にして変換したのは、サムネイルで横並びにしたとき、その方が整いそうに思えたからです。

Rubyコマンド
require "RMagick"
img = Magick::ImageList.new("rails.png")
height=100
width=(img.columns.to_f * height.to_f / img.rows.to_f).to_i

f=img.resize(width, height)
f.write("h100_image.png")


変換倍率をコマンドで確認
u9x@ubuntu:~ % bc
bc 1.06.94
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
scale=4
50/78
.6410
64/100
.6400



Powered by ScribeFire.

posted by hirono at 19:58| Comment(0) | TrackBack(0) | Rails

2010年03月28日

[Rails][View]content_for

ページごとに <title> の値を変更する方法(content_for を使用する) - 紅孔雀

 どうも理解しにくかったのですが、このページを読んでわかりました。

 つまり、ここのViewファイルで、
<span class="synIdentifier"><% <span class="highlight">content_for</span> :view do %></span>
独自のレイアウト
<span class="synIdentifier"><% end %></span>

とすると、アプリケーションやコントローラのテンプレートで、

<span class="synIdentifier"><%=</span><span class="synConstant"> yield</span><span class="synIdentifier"> :view %></span>
と記載した箇所が評価され、「独自のレイアウト」と表示されるみたいです。



posted by hirono at 17:01| Comment(0) | TrackBack(0) | Rails

2010年03月20日

Step up Ruby on Rails - link_to_remote の API ヘルプを日本語訳

Step up Ruby on Rails - link_to_remote の API ヘルプを日本語訳


 書籍にも触れられておらず、ほかに見かけた記事もないので、あるいは自分の環境設定がよくないのかもしれないのですが、link_to_remoteだとJavaScriptが無効の場合、リンクをクリックしても無反応になるみたいです。仕方なくform_remote_tagとsubmit_tagを使っているのですが、これだとCSSのデザインがずいぶんややこしくなります。:style=>は使えますが。

 ちなみに、form_remote_tagだと生成され、ブラウザに送信されたコードは、次のようになっています(適当に改行をいれました)。formタグの中にdivタグが入っています。
  <form action="/indictment_datas/ajax_data_view/4" method="post" onsubmit="new Ajax.Request('/indictment_datas/ajax_data_view/4', 
{asynchronous:true, evalScripts:true, parameters:Form.serialize(this)}); return false;"><div style="margin: 0pt; padding: 0pt;">
<input name="authenticity_token" value="6bb7fdfb3ccb77d9ae2946b89b7d0508d7237c14" type="hidden"//></div>
            <input name="commit" style="border: 0px none ;
 background: transparent url(../images/buttons/k_view-40x19.png) repeat scroll 0% 0%; color: white; width: 44px; height: 19px;
 -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous; cursor: pointer;
 margin-right: -8px; margin-bottom: -4px;" value="" type="submit"//>
    </form>

 Viewのコードはこうです。
    <% form_remote_tag :url => { :action => 'ajax_data_view', :id => t.id }  do %>                          
            <%= submit_tag '', :style=>' color: white;  width: 44px; height:19px; background: url("../images/buttons/k_view-40x19.png"); no-repeat; cursor:pointer; margin-right: -8px; margin-bottom: -4px; border: 0px;' %>                                                                                                         
    <% end %>

 これだとコントローラで、fomart.jsとformat.htmlを入れることで、JavaScriptが無効の場合、html.erbが開きます。


Powered by ScribeFire.



posted by hirono at 08:08| Comment(0) | TrackBack(0) | Rails

2010年03月17日

RubyOnRails を使ってみる 【第 7 回】 RJS を使ってみる

Rubyist Magazine - RubyOnRails を使ってみる 【第 7 回】 RJS を使ってみる
Rails を使っている人に、いまさら Ajax の解説は不要でしょう。 AJAX (Asynchronous JavaScript and XML) は、Web アプリケーションのありようを大きく変えつつあります。 古典的な Web アプリケーションが、ブラウザから送信される HTTP GET/POST Request にサーバーがページ単位にコンテンツを送信していたのに対して、Ajax Web アプリケーションでは、ブラウザから送信される XMLHttpRequest に対して、ページ中の部分的な更新内容を DOM (Document Object Model) 単位でサーバーが返すことで、応答性能や画面の柔軟性を劇的に改善できます。 Ruby on Rails が Ruby 勉強会@関西で初めて紹介された時に、参加者は Rails/Ajax アプリケーションが提供する画面のダイナミックな点に驚嘆したものです。 古典的な Web アプリケーションでは、画面遷移しなければならない場面でも、同じ画面のままで、ちょっとした・しかし重要な画面変化を起こすことができます (AjaxOnRails)。

しかし、RJS 登場以前の Rails では、Ajax Web アプリを開発するには大きな問題がありました。 それは link_to_remote が :update する要素にひとつの DOM しか指定できないことです。 この結果、一回のアクション/トリガで複数の DOM 要素を更新する Ajax アプリを書くには、view テンプレートの中に手製の JavaScript と ERB を混在させることになります。 多言語環境で生きている人は平気でしょうが、Ruby でさえやっとこさっとこの筆者には、複数の言語が混在するスクリプトは頭が痛くなります。なにより JavaScript を覚えなければなりません。

RJS が登場して、Rails ユーザーは Ajax アプリを JavaScript を知らなくても非常に簡単に使えるようになりました。


posted by hirono at 08:00| Comment(0) | TrackBack(0) | Rails

2010年03月02日

jQueryでボタンを横並びに配置 UPDATED:2010-03-02_01:12

Entrydatas: view

jQueryでボタンを横並びに配置 UPDATED:2010-03-02_01:12
<div class='hline'>
 <form>
   <input type="button" value="TEST" onClick="changeText()">
 </form>

 <form>
   <input type="button" value="TEST" onClick="changeJpegSize()">
 </form>

 <form>
   <input type="button" value="Animate" onClick="changeAnimate()">
 </form>

 <form>
   <input type="button" value="info" onClick="changeImg1()">
 </form>

 <form>
   <input type="button" value="testGo" onClick="testGo2()">
 </form>

 <h2>xxxxxxxxxx</h2>
 <p>
   xxxxxxxxxxxxxxxxxaaaaaaaaaaa
 </p>
</div>


<script type="text/javascript">
$("div.hline form")
    .css("display", "inline");
$("input:button,input:submit")
    .css({background:"url('./images/view-40x19.png')",width:"40px",height:"19px",border:"2px solid red",marginTop:"6px"});
</script>

posted by hirono at 04:05| Comment(0) | TrackBack(0) | Rails

jQueryでボタンのスタイル設定 UPDATED:2010-03-02_00:58

jQueryでボタンのスタイル設定 UPDATED:2010-03-02_00:58
<script type="text/javascript">
$("input:button,input:submit")
    .css({background:"url('./images/view-40x19.png')",width:"40px",height:"19px",border:"2px solid red",margin:"2px"});
</script>

 どうもmargin-bottomなどとハイフンを含めると有効にならないみたいです。
 調べたところ、marginBottom:のようにハイフンを入れずに、代わりに次の先頭文字を大文字にするらしいです。Railsと似た規則でした。


posted by hirono at 03:58| Comment(0) | TrackBack(0) | Rails

Title: button_to_function

Date: 2010-03-02_03:30

Title: button_to_function

Url:

Entry:

View:ファイルの記載

<%= link_to_function("リンク", "changeJpegSize()") %>
<%= button_to_function("jQuery", "jqToggle()") %>
<%= button_to_function("RJS") do |page|
      page['testMsg'].toggle
end
%>

<div id='testMsg'>RJS button_to_function</div>
  <h2>jQuery:あああJavaScriptふかふかああぁぁっっぁ</h2>


JavaScript:ファイルの記載
function jqToggle(){
  $("h2").toggle();
}


Railsによって生成されブラウザに送られたHTMLコード:

<a href="#" onclick="changeJpegSize(); return false;">リンク</a& gt;
<input onclick="jqToggle();" type="button" value="jQuery" />
<input onclick="try {
$(&quot;#testMsg&quot;).toggle();
} catch (e) { alert('RJS error:\n\n' + e.toString()); alert('$(\&quot;#testMsg\&quot;).toggle();'); throw e };" type="button" value="RJS" />

<div id='testMsg'>RJS button_to_function</div>
  <h2>jQuery:あああJavaScriptふかふかああぁぁっっぁ</h2>

Date: 2010-03-02_03:30

Title: button_to_function

Url:

Entry:

View:ファイルの記載

<%= link_to_function("リンク", "changeJpegSize()") %>
<%= button_to_function("jQuery", "jqToggle()") %>
<%= button_to_function("RJS") do |page|
      page['testMsg'].toggle
end
%>

<div id='testMsg'>RJS button_to_function</div>
  <h2>jQuery:あああJavaScriptふかふかああぁぁっっぁ</h2>


JavaScript:ファイルの記載
function jqToggle(){
  $("h2").toggle();
}


Railsによって生成されブラウザに送られたHTMLコード:

<a href="#" onclick="changeJpegSize(); return false;">リンク</a& gt;
<input onclick="jqToggle();" type="button" value="jQuery" />
<input onclick="try {
$(&quot;#testMsg&quot;).toggle();
} catch (e) { alert('RJS error:\n\n' + e.toString()); alert('$(\&quot;#testMsg\&quot;).toggle();'); throw e };" type="button" value="RJS" />

<div id='testMsg'>RJS button_to_function</div>
  <h2>jQuery:あああJavaScriptふかふかああぁぁっっぁ</h2>

Date: 2010-03-02_03:30

Title: button_to_function

Url:

Entry:

View:ファイルの記載

<%= link_to_function("リンク", "changeJpegSize()") %>
<%= button_to_function("jQuery", "jqToggle()") %>
<%= button_to_function("RJS") do |page|
      page['testMsg'].toggle
end
%>

<div id='testMsg'>RJS button_to_function</div>
  <h2>jQuery:あああJavaScriptふかふかああぁぁっっぁ</h2>


JavaScript:ファイルの記載
function jqToggle(){
  $("h2").toggle();
}


Railsによって生成されブラウザに送られたHTMLコード:

<a href="#" onclick="changeJpegSize(); return false;">リンク</a& gt;
<input onclick="jqToggle();" type="button" value="jQuery" />
<input onclick="try {
$(&quot;#testMsg&quot;).toggle();
} catch (e) { alert('RJS error:\n\n' + e.toString()); alert('$(\&quot;#testMsg\&quot;).toggle();'); throw e };" type="button" value="RJS" />

<div id='testMsg'>RJS button_to_function</div>
  <h2>jQuery:あああJavaScriptふかふかああぁぁっっぁ</h2>



posted by hirono at 03:37| Comment(0) | TrackBack(0) | Rails

2010年02月28日

RailsにjQueryの導入

jQuery on Rails - ナカオ日記−フリーランスの轍
ruby script/plugin install http://ennerchi.googlecode.com/svn/trunk/plugins/jrails


その後、headタグ内に

<%= javascript_include_tag :defaults %>

追記:2010/03/02
 先に、
sudo gem install jrails
           が必要みたいです。


Powered by ScribeFire.

posted by hirono at 02:54| Comment(0) | TrackBack(0) | Rails

2010年02月25日

datetime_selectのオプション

date_selectとかdatetime_selectとかのオプション - zenpouの日記
1. :order => [:day,:month,:year ] # 選択する項目の順番を入れ替える
2. :discard_year => true # 年のセレクトボックスを削除する。
3. :discard_month => true # 月以降のセレクトボックスを削除する。(日も削除される)
4. :discard_day => true # 日のセレクトボックスを削除する。
5. :discard_hour => true # 時間のセレクトボックスを削除する(分も削除する)
6. :discard_minitu => true # 分のセレクトボックスを削除する。
7. :include_seconds => true # 秒も含める。
8. :start_year => 2007 # 年のセレクトボックスの開始年を設定する。
9. :end_year => 2007 # 年のセレクトボックスの終了年を設定する。
10. :use_month_numbers => true # 月を数字で表示する。
11. :use_month_short_month => true # 月を短縮名で表示する。
12. :add_month_numbers => true # 月を数字+名前で表示する。
13. :use_month_names => %w(Januar Februar Marts ...)) #月の表示名を変更して利用する。
14. :minute_step => 5 #分のステップを変更する。(例だと5分単位)

 参考にさせていただきました。今まで気がつかなかったのですが、デフォルトだと前後5年しか選択できないみたいです。

<%= f.datetime_select :make_date, {:start_year => 1990, :end_year => 2014,:use_month_numbers => true} %>

Powered by ScribeFire.

posted by hirono at 20:37| Comment(0) | TrackBack(0) | Rails

sudo apt-get install vim-rails

oranblue - ubuntuでvimを使ってRuby on Railsする
4.aptでvim-railsのインストール 再びaptでvim-railsというパッケージのインストールです。aptとgemとごちゃまぜで気持ち悪いですが、見ないフリします。rails.vimというプラグインがありますが、dpkg -L vim-railsで確認したところ、同梱されているみたいなので、vim-railsを入れるとrails.vimもインストールされます。 $ sudo apt-get install vim-rails 5.vim-railsの設定 これは必要なのかどうかうろ覚えです。vim-railsをSwitchingしたよーとか、処理できないものがあって、それは無視したとかでますが、一応実行しておいた方がいいんじゃないでしょうか? $ vim-rails-setup
vim-railsは今まで使ってきましたが、ソースコードをダウンロードするなりしてインストールしてきたような気がします。apt-getで簡単にインストールできるみたいです。

Powered by ScribeFire.

posted by hirono at 14:33| Comment(0) | TrackBack(0) | Rails

2010年02月23日

[エントリー名] パーシャル(部分テンプレート)における連番

Entrydatas: view_entry_text
(部分テンプレート)
<div id='dbs1_entry_items' style='background-color:
  <%= dbs1_entry_dbs1_item_counter.modulo(2).nonzero? ? "whitesmoke" : "gainsboro" %>
  ; margin:5px 5px 5px 12px; padding: 5px 5px 5px 5px;'>
  <%=h dbs1_entry_dbs1_item_counter + 1 %><br />
  <b>Title:</b>
  <%=h dbs1_entry_dbs1_item.title %>
  <br />
  <b>Url:</b>
  <%=h dbs1_entry_dbs1_item.url %>
  <br />
  <b>Text type:</b>
  <%=h dbs1_entry_dbs1_item.text_type %>
  <br />
  <b>Item content:</b><br />
  <%=h dbs1_entry_dbs1_item.item_content %>
</div>


(呼び出し側)
  <%= render(:partial => "dbs1_entry_k_item", :collection => @dbs1_entry.dbs1_items) %>


 呼び出されるごとに、背景色を変えています。

参考:http://rails.to/files/four-days-on-rails-2.3-ver-1.0.pdf

posted by hirono at 04:02| Comment(0) | TrackBack(0) | Rails

2010年02月20日

[エントリー名] passengerの設定(Ubuntu9.10)

Entrydatas: view_entry_text
[登録日時] 2010年02月20日(Sat)21時43分

[最終更新] 2010年02月20日(Sat)21時43分

[エントリー名] passengerの設定(Ubuntu9.10)

[カテゴリ] Rails ubuntu Apache
関連・参考情報:
URLリンク http://d.hatena.ne.jp/lagos_on/20090705/1246751141

[内容]

必要なパッケージをインストール(インストール済みは不要)
sudo apt-get install apache2
sudo apt-get install ruby ruby-dev irb libopenssl-ruby
sudo apt-get install apache2-prefork-dev libapr1-dev libaprutil1-dev

sudo gem install rails
sudo gem install passenger

passengerの設定コマンドを実行
passenger-install-apache2-module

# 次のような設定方法のメッセージが表示されるので、
Please edit your Apache configuration file, and add these lines:
に続く情報をもとに、ファイルを作成

u9@ubuntu:~ % cat /etc/apache2/mods-available/rails.load
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.2.9/ext/apache2/mod_passenger.so
u9@ubuntu:~ % cat /etc/apache2/mods-available/rails.conf
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.9
PassengerRuby /usr/bin/ruby1.8


モジュールを有効にする。
sudo a2enmod rails

バーチャルホストの設定
cd /etc/apache2/sites-available/
sudo vi rails-apache ←設定ファイルを作成
sudo a2dissite default ←もとからの設定を無効
sudo a2ensite rails-apache

/etc/hostsの編集(設定したServerNameの追加)
127.0.1.1 www.u9-rails.net もとからあるホストネーム

Apache2の再起動
sudo apache2ctl restart

rails-apacheの内容

ServerName www.u9-rails.net
ServerAdmin webmaster@localhost
DocumentRoot "/home/u9/www"
RailsBaseURI "/kokuhatu"
# RailsEnv "development"

Options Indexes ExecCGI FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all



ErrorLog /var/log/apache2/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog /var/log/apache2/access.log combined
ServerSignature On

Alias /doc/ "/usr/share/doc/"

Options Indexes MultiViews FollowSymLinks
AllowOverride None


Powered by ScribeFire.

posted by hirono at 21:45| Comment(0) | TrackBack(0) | Rails

2010年02月19日

Passenger Rails

参考:http://blog.livedoor.jp/kaznobster/archives/1158745.html

sudo yum install httpd-devel
sudo gem install passenger
sudo passenger-install-apache2-module

/etc/httpd/conf/httpd.confの追加記載
   
                DocumentRoot "/home/hideki-01/public_html"
                        RailsBaseURI "/kokuhatu"
   #            RailsEnv "development"
       
                Options Indexes FollowSymLinks
                AllowOverride None
                Order allow,deny
                Allow from all
       

   



   LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.9/ext/apache2/mod_passenger.so
   PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-2.2.9
   PassengerRuby /usr/local/bin/ruby



1600x900 WindowsXP
entrydata-apache_20100219
entrydata-apache_20100219 posted by (C)hirono-hideki


1600x900 Linux Firefox
entrydata-apache-f8_20100219
entrydata-apache-f8_20100219 posted by (C)hirono-hideki


 1024x768の解像度ですが、mongrellには出ないレイアウトの乱れが出て、気になります。
entrydata-appache-assenger-f8_20100219
entrydata-appache-assenger-f8_20100219 posted by (C)hirono-hideki


entrydata-sakura-1024x768_20100219
entrydata-sakura-1024x768_20100219 posted by (C)hirono-hideki


Powered by ScribeFire.



posted by hirono at 10:01| Comment(0) | TrackBack(0) | Rails

2010年02月17日

Eclipse(Aptana)gitプラグイン

参考:
http://fenrir.naruoka.org/archives/000697.html
http://d.hatena.ne.jp/griffith181/20091113/1258073785

http://iteman.jp/blog/2009/03/egit.html

EGitでできないこと

  • ブランチを削除できない
  • ブランチ間のマージができない
  • 各コマンドに対してキー操作を割り当てることができない




u9-aptana_20100217
u9-aptana_20100217 posted by (C)hirono-hideki


u9-aptana-git_20100217
u9-aptana-git_20100217 posted by (C)hirono-hideki


Powered by ScribeFire.

posted by hirono at 05:36| Comment(0) | TrackBack(0) | Rails

2010年02月14日

button_toでボタンの使用とマウスオーバー

CSSの設定
#h_navigation .k_category_view .button { margin-bottom:1px; width:40px; height:19px; color: white; background:url("../images/buttons/k_view-40x19.png") no-repeat; cursor:pointer; }

#h_navigation .k_category_view .button:hover {  
   background-image: url("../images/buttons/select_category.png"); /* マウスオーバー時の画像 */  
  }  


Viewの設定
        <div class="inline">
          <%= button_to "", {:action=>:k_view,:id=>category.id}, {:style=>'border:0px',:class=>'button'} %>
          <b>&nbsp;<%=h category.name %></b>
          &nbsp;(<%=h @count[category.id]%>)
        </div>




 cssファイルで、border:0pxの設定をしてもInternet Explorer 8では、外回りの枠線が消えませんでした。

Powered by ScribeFire.



posted by hirono at 14:44| Comment(0) | TrackBack(0) | Rails

2010年02月13日

アクションのフルパスURLを生成

config/routes.rbに追記
map.popup '/popup_view', :controller => 'popup_view', :action => 'highslide'

Viewファイルに記入
<% action_path = "http://" + request.env['SERVER_NAME'] + popup_path + '/highslide'%>

使用例:



Powered by ScribeFire.



posted by hirono at 21:23| Comment(0) | TrackBack(0) | Rails

2010年01月15日

has_many :throughで多対多のリレーション

3つのテーブルを作成。 % ./script/generate model entry title:string content:text % ./script/generate model category name:string % ./script/generate model category_entry category_id:integer entry_id:integer % rake db:migrate 3つのファイルを編集 *********************************************** [FILENAME] app/models/category.rb *********************************************** class Category < ActiveRecord::Base has_many :category_entries, :dependent => :destroy has_many :entries, :through => :category_entries end *********************************************** [FILENAME] app/models/category_entry.rb *********************************************** class CategoryEntry < ActiveRecord::Base belongs_to :entry belongs_to :category end *********************************************** [FILENAME] app/models/entry.rb *********************************************** class Entry < ActiveRecord::Base has_many :category_entries, :dependent => :destroy has_many :categories, :through => :category_entries end  単数形と複数形の使い分けに注意。 実行例:( ./script/console) >> e = Entry.new => # >> e.title="AAAAAA" => "AAAAAA" >> c=Category.new => # >> c.name="Rails" => "Rails" >> c.save => true >> e.categories << c => [#] >> c2=Category.new => # >> c2.name="Ruby" => "Ruby" >> c2.save => true >> Category.find(:all) => [#, #, #, #] >> e.categories << Category.find(4) => [#, #] >> e.categories => [#, #] >> e.categories.each do |d| ?> puts d.name >> end Rails Ruby => [#, #] >>

Powered by ScribeFire.

posted by hirono at 01:13| Comment(0) | TrackBack(0) | Rails

2010年01月14日

Capistranoのタスクで複数のサーバに同じコマンドを実行

FFTT : Capistranoを参考にしました。

設定ファイル:h-ssh.rb(適当なファイル名です。)
 テストなのでコマンドも適当ですが、dateは現在の日付と時刻の表示、calは今月のカレンダーを表示するコマンドで、いずれも出力をリダイレクトしてファイルを作っています。

u9@u9-vmx:~/2010/rails/kokuhatu % cat h-ssh.rb ←catはファイルの内容を表示するUNIXのコマンドです。
role :hhosts, "hirono-hideki-01@hirono-hideki-01.sakura.ne.jp", "u9@localhost"

task :sakura_hhosts do
   run "cd ~; date > ./sakura.date"
end

set :testname, "hirono"
task :sakura_cal, :roles => :hhosts do
   run "cd ~; cal > ./#{testname}.date;
                echo `which ruby`; echo `pwd`"
end


タスクの実行:
u9@u9-vmx:~/2010/rails/kokuhatu % cap -f h-ssh.rb sakura_cal
  * executing `sakura_cal'
  * executing "cd ~; cal > ./hirono.date;\\\n\t\techo `which ruby`; echo `pwd`"
    servers: ["hirono-hideki-01.sakura.ne.jp", "localhost"]
    [hirono-hideki-01@hirono-hideki-01.sakura.ne.jp] executing command
 ** [out :: hirono-hideki-01@hirono-hideki-01.sakura.ne.jp] /usr/local/bin/ruby
 ** [out :: hirono-hideki-01@hirono-hideki-01.sakura.ne.jp] /home/hirono-hideki-01
    [u9@localhost] executing command
 ** [out :: u9@localhost] /usr/bin/ruby
 ** [out :: u9@localhost] /home/u9
    command finished
u9@u9-vmx:~/2010/rails/kokuhatu %

 サーバにこんな感じでファイルが出来ています。
[sakura ~] % ls hirono.date sakura.date
hirono.date sakura.date
[sakura ~] % cat hirono.date sakura.date catコマンドは複数のファイルをしていすると、連結して表示します。
    January 2010
Su Mo Tu We Th Fr Sa
                1  2
 3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
Thu Jan 14 19:23:19 JST 2010
[sakura ~] %



Powered by ScribeFire.

posted by hirono at 19:48| Comment(0) | TrackBack(0) | Rails

capistranoを使ったRailsアプリのデプロイ

実行環境はUbuntu9.10。デプロイ先は、さくらインターネットのサーバ(FreeBSD 7.1-RELEASE-p8 (SAKURA11S))。

 以前にも挑戦したことがあったのですが、うまくいかず。1月11日にようやくうまく出来ました。gitを使っています。理解がややこしかったのですが、gitを実行するのはリモート環境になるみたいです。

インストール:
sudo gem install capistrano --include-dependencies

管理除外ファイルの指定:.gitignoreの作成と編集
RAILS_ROOT/.gitignoreの内容
log/*.log
tmp/**/*



対象アプリのトップディレクトリ(RAILS_ROOT)で、
capify .
を実行。

生成された、./config/deploy.rbを編集。(別途sshの設定が必要)
set :application, "アプリ名"
set :user, 'hirono-hideki-01'
set :domain, 'hirono-hideki-01.sakura.ne.jp'
set :repository,  "#{user}@#{domain}:git/#{application}.git"
set :deploy_to, "/home/#{user}/rails-deploy/#{application}"

# distribute your applications across servers (the instructions below put them
# all on the same server, defined above as 'domain', adjust as necessary)    
role :app, domain                                                            
role :web, domain                                                            
role :db, domain, :primary => true                                           

# you might need to set this if you aren't seeing password prompts
# default_run_options[:pty] = true                               

# As Capistrano executes in a non-interactive mode and therefore doesn't cause
# any of your shell profile scripts to be run, the following might be needed 
# if (for example) you have locally installed gems or applications.  Note:
# this needs to contain the full values for the variables set, not simply
# the deltas.
#default_environment['PATH']='/usr/local/bin:/usr/bin:/bin'
#default_environment['GEM_PATH']='/usr/lib/ruby/gems/1.8'

# miscellaneous options
set :deploy_via, :remote_cache
set :scm, 'git'
set :branch, 'master'
set :scm_verbose, true
set :use_sudo, false

# task which causes Passenger to initiate a restart
namespace :deploy do
  task :restart do
    run "touch #{current_path}/tmp/restart.txt"
  end
end

セットアップ:
cap deploy:setup

初回デプロイ:
cap deploy:cold

二回目以降のデプロイ:
cap deploy

 うまくいけば、デプロイ先はこんな感じになります。
rails-deploy                 
`-- kokuhatu                 
    |-- current -> /home/hirono-hideki-01/rails-deploy/kokuhatu/releases/20100114081510
    |-- releases                                                                      
    |   |-- 20100111064007                                                            
    |   |   |-- Capfile                                                               
    |   |   |-- README                                                                
    |   |   |-- REVISION                                                              
    |   |   |-- Rakefile                                                              
    |   |   |-- app                                                                   
    |   |   |   |-- controllers                                                       
    |   |   |   |   |-- application.rb                                                
    |   |   |   |   |-- application_controller.rb                                     
    |   |   |   |   |-- db1s_controller.rb                                            
    |   |   |   |   `-- ex1_controller.rb                                             
    |   |   |   |-- helpers                                                           
    |   |   |   |   |-- application_helper.rb                                         
    |   |   |   |   |-- db1s_helper.rb                                                
    |   |   |   |   `-- ex1_helper.rb                                                 
    |   |   |   |-- models                                                            
    |   |   |   |   `-- db1.rb                                                        
    |   |   |   `-- views                                                             
    |   |   |       |-- db1s                                                          
    |   |   |       |   |-- edit.html.erb                                             
    |   |   |       |   |-- index.html.erb                                            
    |   |   |       |   |-- new.html.erb                                              
    |   |   |       |   `-- show.html.erb                                             
    |   |   |       |-- ex1                                                           
    |   |   |       |   |-- index.html.erb                                            
    |   |   |       |   `-- view.html.erb                                             
    |   |   |       `-- layouts                                                       
    |   |   |           `-- db1s.html.erb                                             
    |   |   |-- config                                                                
    |   |   |   |-- boot.rb                                                           
    |   |   |   |-- database.yml                                                      
    |   |   |   |-- deploy.rb                                                         
    |   |   |   |-- environment.rb                                                    
    |   |   |   |-- environments                                                      
    |   |   |   |   |-- development.rb                                                
    |   |   |   |   |-- production.rb                                                 
    |   |   |   |   `-- test.rb                                                       
    |   |   |   |-- initializers                                                      
    |   |   |   |   |-- backtrace_silencers.rb                                        
    |   |   |   |   |-- inflections.rb                                                
    |   |   |   |   |-- mime_types.rb                                                 
    |   |   |   |   |-- new_rails_defaults.rb                                         
    |   |   |   |   `-- session_store.rb                                              
    |   |   |   |-- locales                                                           
    |   |   |   |   `-- en.yml                                                        
    |   |   |   `-- routes.rb                                                         
    |   |   |-- db                                                                    
    |   |   |   |-- development.sqlite3                                               
    |   |   |   |-- migrate                                                           
    |   |   |   |   `-- 20100111015409_create_db1s.rb                                 
    |   |   |   |-- schema.rb                                                         
    |   |   |   `-- seeds.rb                                                          
    |   |   |-- deploy.rb.back                                                        
    |   |   |-- doc                                                                   
    |   |   |   `-- README_FOR_APP                                                    
    |   |   |-- log -> /home/hirono-hideki-01/rails-deploy/kokuhatu/shared/log        
    |   |   |-- public                                                                
    |   |   |   |-- 404.html                                                          
    |   |   |   |-- 422.html                                                          
    |   |   |   |-- 500.html                                                          
    |   |   |   |-- dispatch.cgi                                                      
    |   |   |   |-- dispatch.fcgi                                                     
    |   |   |   |-- dispatch.rb                                                       
    |   |   |   |-- favicon.ico                                                       
    |   |   |   |-- images                                                            
    |   |   |   |   `-- rails.png                                                     
    |   |   |   |-- index.html                                                        
    |   |   |   |-- javascripts                                                       
    |   |   |   |   |-- application.js                                                
    |   |   |   |   |-- controls.js                                                   
    |   |   |   |   |-- dragdrop.js                                                   
    |   |   |   |   |-- effects.js                                                    
    |   |   |   |   `-- prototype.js                                                  
    |   |   |   |-- robots.txt                                                        
    |   |   |   |-- stylesheets                                                       
    |   |   |   |   `-- scaffold.css                                                  
    |   |   |   `-- system -> /home/hirono-hideki-01/rails-deploy/kokuhatu/shared/system
(以下省略)

[sakura ~] % ls rails-deploy/kokuhatu/releases/
20100111064007 20100111064904 20100111065638 20100111081150 20100114080819
20100111064627 20100111065248 20100111071405 20100114080439 20100114081510

 currentが最新版へのシンボリックリンクになっているみたいです。なお、リビジョンが日付と時刻で名前付けされていますが、世界標準時間になっているみたいです。日本時間は+9時間だと思います。




Powered by ScribeFire.

posted by hirono at 18:02| Comment(0) | TrackBack(0) | Rails

2010年01月11日

さくらインターネットのサーバでgitのcommand not foundを解決

ssh 経由で git を使うと command not found になる問題 - もやし日記


 上記ページが解決のヒントになりました。

/home/(ユーザ名)/local/bin
の中にあるgit関係のコマンドをすべて、
/home/(ユーザ名)/binにシンボリックリンクを張ったところ、うまくいったみたいです。

bash: git-upload-pack: command not found
というエラーが出ていました。



Powered by ScribeFire.

posted by hirono at 07:40| Comment(0) | TrackBack(0) | Rails

2010年01月09日

[Rails]セッション情報のクリア

rake db:sessions:clear

Powered by ScribeFire.

posted by hirono at 05:11| Comment(0) | TrackBack(0) | Rails

2010年01月08日

Railsの入力値検証(validates)

宮井拓也の日記 » Blog Archive » Railsの入力値検証(validates_なんちゃら系)まとめ

 まとめてあるので助かります。パソコンのデータだとコピペも出来ますし、けっこう長めのメソッド名にもなっています。

 Vim.railsだと、始めの3文字で略語展開ができます。動的略語展開のようにインクリメントで候補が出ることはなく、入力をした時点で自動的に置き換わります。

      Rabbrev va(    validates_associated
      Rabbrev vb(    validates_acceptance_of
      Rabbrev vc(    validates_confirmation_of
      Rabbrev ve(    validates_exclusion_of
      Rabbrev vf(    validates_format_of
      Rabbrev vi(    validates_inclusion_of
      Rabbrev vl(    validates_length_of
      Rabbrev vn(    validates_numericality_of
      Rabbrev vp(    validates_presence_of
      Rabbrev vu(    validates_uniqueness_of
 

Powered by ScribeFire.

posted by hirono at 02:00| Comment(0) | TrackBack(0) | Rails

2010年01月07日

Rails.vimで移動した関連ファイルから戻る方法

83's : rails.vimのいい加減な翻訳
gfコマンドは普通カーソルの下にあるファイルを編集するものであるが、 文脈を考慮するようにマップしなおされている。 CTRL-W_f(新しいウィンドウを開く)とCTRL-W_gf(新しいタブで開く)もまたマップしなおされている。

 こちらのページがだいぶん前にも参考にさせていただきました。gfがとても便利なのはわかっていたのですが、元のファイルへの戻り方がわからず、ほとんど使っていませんでした。ナビゲーションという機能らしいですが、適切に解釈してくれるとはいえ、意図せぬファイルに飛ぶこともあったからです。
 :Rview, :Rcontroller, :Rmigration
などと指定すれば確実に戻れますが、煩わしく感じていました。

 今回読み直してわかったことは、
Ctrl+^
で戻れるらしい(試したみた感じ)と言うことです。間違えても簡単に元の位置に戻れるとなると、余計なことを考えずに使えそうです。


Powered by ScribeFire.

posted by hirono at 06:06| Comment(0) | TrackBack(0) | Rails

rails.vimの入力補完機能を追加・編集

参考:http://ruby2008.seesaa.net/article/120799335.html

 ~/.vim/autoload/rails.vimを編集

function! s:BufAbbreviations()
  command! -buffer -bar -nargs=* -bang Rabbrev :call s:Abbrev(0,)
  " Some of these were cherry picked from the TextMate snippets
  if g:rails_abbreviations
    let t = RailsFileType()
    " Limit to the right filetypes.  But error on the liberal side
    if t =~ '^\(controller\|view\|helper\|test-functional\|test-integration\)\>'
      Rabbrev pa[ params
      Rabbrev rq[ request
      Rabbrev rs[ response
      Rabbrev se[ session
      Rabbrev hd[ headers
      Rabbrev co[ cookies
      Rabbrev fl[ flash
      Rabbrev rr( render
      Rabbrev ra( render :action\ =>\
      Rabbrev rc( render :controller\ =>\
      Rabbrev rf( render :file\ =>\
      Rabbrev ri( render :inline\ =>\
      Rabbrev rj( render :json\ =>\
      Rabbrev rl( render :layout\ =>\
      Rabbrev rp( render :partial\ =>\
      Rabbrev rt( render :text\ =>\
      Rabbrev rx( render :xml\ =>\
      Rabbrev san( sanitize     <−追加
      Rabbrev sa[ sanitize(    ←追加
    endif
    if t =~ '^\%(view\|helper\)\>'
      Rabbrev dotiw distance_of_time_in_words
      Rabbrev taiw  time_ago_in_words
    endif
    if t =~ '^controller\>'
      Rabbrev re(  redirect_to
      Rabbrev rea( redirect_to :action\ =>\
      Rabbrev rec( redirect_to :controller\ =>\
      Rabbrev rst( respond_to
    endif
    if t =~ '^model-arb\>' || t =~ '^model$'
      Rabbrev bt(    belongs_to
      Rabbrev ho(    has_one
      Rabbrev hm(    has_many
      Rabbrev habtm( has_and_belongs_to_many
      Rabbrev co(    composed_of
      Rabbrev va(    validates_associated
      Rabbrev vb(    validates_acceptance_of
      Rabbrev vc(    validates_confirmation_of
      Rabbrev ve(    validates_exclusion_of
      Rabbrev vf(    validates_format_of
      Rabbrev vi(    validates_inclusion_of
      Rabbrev vl(    validates_length_of
      Rabbrev vn(    validates_numericality_of
      Rabbrev vp(    validates_presence_of
      Rabbrev vu(    validates_uniqueness_of
    endif
    if t =~ '^\%(db-\)\=\%(migration\|schema\)\>'
      Rabbrev mac(  add_column
      Rabbrev mrnc( rename_column
      Rabbrev mrc(  remove_column
      Rabbrev mct(  create_table
      Rabbrev mcht( change_table
      Rabbrev mrnt( rename_table
      Rabbrev mdt(  drop_table
      Rabbrev mcc(  t.column
    endif
    if t =~ '^test\>'
      Rabbrev ase(  assert_equal
      Rabbrev asko( assert_kind_of
      Rabbrev asnn( assert_not_nil
      Rabbrev asr(  assert_raise
      Rabbrev asre( assert_response
      Rabbrev art(  assert_redirected_to
    endif
    Rabbrev :a    :action\ =>\
    " hax
    Rabbrev :c    :co________\ =>\
    inoreabbrev :c =TheCWord()
    Rabbrev :i    :id\ =>\
    Rabbrev :o    :object\ =>\
    Rabbrev :p    :partial\ =>\
    Rabbrev logd( logger.debug
    Rabbrev logi( logger.info
    Rabbrev logw( logger.warn
    Rabbrev loge( logger.error
    Rabbrev logf( logger.fatal
    Rabbrev fi(   find
    Rabbrev AR::  ActiveRecord
    Rabbrev AV::  ActionView
    Rabbrev AC::  ActionController
    Rabbrev AS::  ActiveSupport
    Rabbrev AM::  ActionMailer
    Rabbrev AE::  ActiveResource
    Rabbrev AWS:: ActionWebService
  endif
endfunction


 Rabbrev sa( sanitize の設定部分は、san( と入力した時点で sanitize( に置き換わる。  
 Rabbrev sa[ sanitize( の設定部分は、sa[ と入力した時点で sanitize([ と置き換わる。これだと不都合だが、sa と入力した時点で、Ctrl+]を押すと、sanitize( と置き換わる。こちらの方が上より、キーが打ちやすいかもしれない。(「(」は、Shift+8になるので) 



Powered by ScribeFire.

posted by hirono at 05:34| Comment(0) | TrackBack(0) | Rails

2010年01月05日

Railsのインストール

アンインストール
gem uninstall rails

インストール
gem install rails --include-dependencies

バージョンを指定したインストール
gem install rails --include-dependencies -v=2.2.2


Powered by ScribeFire.

posted by hirono at 14:41| Comment(0) | TrackBack(0) | Rails

SQLiteコマンド一覧のまとまったサイト

SQLiteコマンド一覧 : PHPとSQLite rakutoネット


Sqlite3

 MySQLが多いで、あまり使うことはないのですが、それだけわすれやすいこともあり、これだけまとまっていると助かります。


Powered by ScribeFire.



posted by hirono at 06:54| Comment(0) | TrackBack(0) | Rails

IDのないテーブルを作る。

Powered by ScribeFire.



posted by hirono at 06:16| Comment(0) | TrackBack(0) | Rails

2010年01月04日

Ruby on Rails 2.3

Ruby on Rails 2.3リリース CGIに代えてRackを採用:CodeZine
 プログラミング言語Ruby上で動作するオープンソースのWebアプリケーションフレームワーク「Ruby on Rails」バージョン2.3が、3月16日リリースされた。頻繁に改良されることで知られるRailsだが、今回のアップグレードは、Rack対応などこれまででもかなり大きな変更となっている。アナウンスおよびリリースノートによると主な概要は次のとおり。 * テンプレート アプリケーションジェネレーター「rg」を統合したことにより、テンプレートベースのアプリケーションを生成できる。 * エンジン Rails Engine(他のアプリに埋め込むことができるRailsアプリケーション)機能のいつくかをサポート。 * Rack 既存のCGIに代えて、WebサーバーインターフェースRackをサポート。 * Metal 高速なマイクロフレームワーク「Rails Metal」のサポート。 * ネスト 複雑なフォームを記述するためのActive Recordの改良。 * Ruby 1.9.1サポート

 2.2.2を使っていると、「Active Recordの改良」のあたりで不便や問題が起きそうなので、早めに対応しておきたいところです。さくらインターネットに限った問題ですが。

Powered by ScribeFire.

posted by hirono at 19:40| Comment(0) | TrackBack(0) | Rails

2009年12月30日

[Rails]日付表示のフォーマット

environment.rbに以下を追加

ActiveSupport::CoreExtensions::Date::Conversions::DATE_FORMATS.merge!({
    :default => "%Y年%m月%d日",
})

ActiveSupport::CoreExtensions::Time::Conversions::DATE_FORMATS.merge!({
    :default => "%H:%M",
})


 データ型はdate型とtime型、それぞれに設定。他の言語とかとフォーマットの修飾子が若干異なっているみたいです。よくある%mmなどの二桁指定も無視されました。




Powered by ScribeFire.

posted by hirono at 04:54| Comment(0) | TrackBack(0) | Rails

scaffoldで指定できるデータ型

第5回 scaffoldをやり直してカラムを増やしてみる – Rails格闘記 – ポンクソフト
scaffoldで指定できるデータ型は以下の通り。
シンボル 説明 対応するMySQLの型
:string 文字列 varchar(255)
:text 長い文字列 text
:integer 整数 int(11)
:float 浮動小数 float
:decimal 厳密な精度の少数 decimal
:datetime 日時 datetime
:timestamp より細かい日時 datetime
:time 時間 time
:date 日付 date
:binary バイナリデータ blob
:boolean 真偽型 tinyint(1)


 こういうのも忘れがちなので、まとめてあると助かります。

Powered by ScribeFire.

posted by hirono at 02:53| Comment(0) | TrackBack(0) | Rails

2009年12月29日

Railsのメール送信を日本語対応にする。

2009-01-26 - 日常茶飯事
メールの日本語対応 ActionMailerJa % ruby script/plugin install git://github.com/kusakari/actionmailer_ja.git

 上記サイトを参考にしました。gitがインストールされている必要があるはずです。  その前に日本語のメールを送信していないので、はっきりわからないのですが、実行すると文字化けの起こりやすいサブジェクト(件名)が日本語で届いていました。

Powered by ScribeFire.

posted by hirono at 04:05| Comment(0) | TrackBack(0) | Rails