suakx devlog
link
class Project < ActiveRecord::Base  
  has_many :tasks  
end
class Task < ActiveRecord::Base  
  belongs_to :project  
end

で関連性をつけておくと

@project = Project.find(params[:id])  
@tasks = Task.find(:all, :conditions => ['project_id = ? AND complete = ?', @project.id, false])

@project = Project.find(params[:id])  
@tasks = @project.tasks.find_all_by_complete(false)

に変えられコードを短くできるというお話。

link


@tasks = Task.find(:all, :conditions => ['complete = ?', false])

よりも



@tasks = Task.find_all_by_complete(false)

の方がコードが短い。やってることは全く一緒。

link

def current_user
  User.find(session[:user_id])
end

じゃなくて


def current_user
  @current_user ||= User.find(session[:user_id])
end

でDBアクセス減らせますよという話。

link
Railsの復習をかねてRailscastsを見ていくことにします

http://railscasts.com

を#1エピソードから見ていくことにします。

link
select文でcheckboxのon/offで挙動の変え方


<%= select("model", "model_id", 
    Model.find(:all, :order => "name", ).collect {|p| [ p.name, p.id ] },,
    :onchange => "#{remote_function(:update => 'body', 
    :url => { :action => :update_body }, 
    :with => "'id=' + value + '&check=' + document.getElementById('check').checked") }") %>
チェックを含む<input type="checkbox" id=check" />
とやっておくと

params[:check]
で条件を変える事が出来ます。

link
railsが2.3.2に、iPhoneOSが3.0に

http://weblog.rubyonrails.org/2009/3/16/rails-2-3-templates-engines-rack-metal-much-more


なんで重なるんでしょうね。

いそがしくなります。

link
内部からのアクセスを問題なく行けるようにDNSを設定して、Redmineをインストールしました。おまけに外からは80番と443番ともう一つ(秘密鍵アクセス用)だけアクセスできるようにルーターで閉じてしまい、内側からもプラス53が開いているだけにしました。これでちょっとひと安心です。

内部からのアクセスを問題なく行けるようにDNSを設定して、Redmineをインストールしました。おまけに外からは80番と443番ともう一つ(秘密鍵アクセス用)だけアクセスできるようにルーターで閉じてしまい、内側からもプラス53が開いているだけにしました。これでちょっとひと安心です。

link
bortとextended-bortとrailsコマンドとどれを使おうか悩んでみた

railsで新しいアプリを作るとき

rails アプリ名

でファイルをどっさり作成してもらう方法の他に

bortextended-bortを使う方法があります。

それぞれにクセがあります。

rails アプリ名の場合

gemの最新版なのでrails -vは2.2.2になる。
デフォルト。

bortの場合

rails -vは2.2.0
プラギンがいろいろ入ってる。

extended-bortの場合

rails -vは2.2.0
プラギンがいろいろ入ってる。
prototype-jsをjQueryにさし変え。
railsもvenderフォルダに入ってる。

そんな感じです。
で、extended-bortの場合、vender以下のgem、plugin、rails以下のそれぞれのフォルダで
git remote update
git merge origin/master
をかますと、それぞれのgitが最新になり
rails -vも2.3.1になります。
あとは、environment.rbをかきかえるだけです。

あたらしモン好きの私としてはextended-bortを選択する事にしました。

ただ、注意事項としてなぜかextended-bortの最新版gitは
app>controllers>application_controller.rb
であるところが、
app>controllers>application.rb
と言うファイル名になっています。
それを書き換えれば、gem、plugin、railsをすべて最新にして、environment.rbのrails versionを最新にしても今のところ初期のままで問題なく動いています。

link
gem list

*** LOCAL GEMS ***

actionmailer (2.2.2)
actionpack (2.2.2)
activerecord (2.2.2)
activeresource (2.2.2)
activesupport (2.2.2)
fastthread (1.0.1)
passenger (2.0.6)
rack (0.9.1)
rails (2.2.2)
rake (0.8.3)

まだまだ奇麗なものです。どんどん汚くなっていきます。