Rails 的輔助方法

許多有經驗有條理的程式設計師是很不喜歡亂到不行的程式碼。一來閱讀困難,二來在維護會很有機會吐血。
為避免上述的狀況,可以自定helper來設計輔助方法。

[cc lang=”ruby”]
module XXXXHelper
def admin?(p)
p[:user] == “AAA” and p[:passwd] == “123456” and p[:token] == “XYZ”
end
end
[/cc]

如上定義之後,樣版中(views)就可以直接:

[cc lang=”ruby”]
<% if admin? params %>
admin data here.
<% end %>
[/cc]

ruby的語法特性,特別的地方是以往我們習慣在呼叫函式會這樣做:
call function(var, var)

而現在是這樣做
function? var, var

ruby有許多新觀念的coding方法跟我之前習慣php方法差蠻多的,還在摸索~

以上 ~

登入ssh不用輸入密碼

最近在用rsync從ssh通道處理sync的工作,然而ssh是需要經過一道密碼輸入才能進行rsync ,而且也放入cron自動執行,找不到人輸入密碼它會哭哭的 ~

利用ssh-keygen產生密鑰 id_rsa, id_rsa.pub
[cc lang=”bash”]
$ssh-keygen -t rsa 或 ssh-keygen -d (dsa)
[/cc]
將產生完的 id_rsa.pub 用scp傳送至對方的主機。(這過程還是需要密碼)
[cc lang=”bash”]
$scp id_rsa.pub server_hostname:~/.ssh/
[/cc]
連到對方的主機
[cc lang=”bash”]
$ssh server_hostname
[/cc]
把傳進去的id_rsa.pub 合並至authorized_keys
[cc lang=”bash”]
$cat .ssh/id_rsa.pub >> .ssh/authorized_keys
[/cc]
這樣子就可以 key 認證登入, 不需輸入密碼。
如果在對方的主機上沒有.ssh的目錄,再自行建立及可。