全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2084
推到 Plurk!
推到 Facebook!

Ruby on Rails 與 Delphi

 
frappe
中階會員


發表:88
回覆:114
積分:95
註冊:2008-10-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-07-06 20:15:44 IP:61.20.xxx.xxx 訂閱
常常看到許多文章寫Delphi轉C#或是其他語言
我最近對Ruby on Rails還滿有興趣的,
研究一陣子後覺得許多觀念可以跟Delphi結合,
我本身沒寫過網頁程式,之前都是用Delphi寫資料庫程式,
所以這是我的一點點小心得,如果覺得我寫得不好歡迎指正^^
1.Ruby on Rails為什麼號稱開發速度是Java的10倍,PHP的5倍
其實這應該沒什麼好比的,因為一個是框架,一個是語言
Ruby on Rails的Scaffold功能可以快速產生CRUD頁面
只要下一個指令就可以啦
例如:
ruby script/generate scaffold product name:string description:text price:decimal
這就有點像是Delphi的感知元件,有product的TTable和name,description,price三個DBEdit
ps.如果不考慮美工,我覺得好像比Delphi還快@@"
2.MVC
玩過Ruby on rails之後才知道MVC是什麼東西,
那和Delphi有什麼相似之處呢?
M- Model
連結資料庫用的,很像Delphi的DataModule
V- View
就是顯示的頁面,很像Delphi的Form
C- Controller
就如同Delphi裡面的對於DataSet的Append,Edit,Delete都是寫在這裡,
也有Find指令,很像TTable的Filter,可以用來做搜尋的功能
先寫到這啦,未完待續........
編輯記錄
frappe 重新編輯於 2009-07-06 20:17:25, 註解 無‧
GrandRURU
站務副站長


發表:240
回覆:1680
積分:1874
註冊:2005-06-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-07-07 08:22:40 IP:203.75.xxx.xxx 未訂閱
我之前也看過些RUBY的資料
直覺認為這是只在網頁應用的內容
但範例看著看著…就睡著了……

不知道除了在RUBY能否應用在WIN32上面
再來就是它的中文資料比BCB還少,更不用說與DELPHI比了

但RUBY的廣告詞總是讓我很動心,「比現在的開發速度還快十倍!」

但我總覺得吸收它可能要慢個十倍………

好啦!我承認我的慧根很差!我看不懂……
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-07-07 08:48:38 IP:60.248.xxx.xxx 未訂閱
RoR爆紅我用心去學了幾個月(2007/10~2008/03),在此貼上我當時心得及心情,(也許當時看法已經不適用於目前)

儘管RoR在目前業界很夯,媒體炒得火熱。然而並未見有一股大量學習潮、企業採用也多做保留。儘管它是目前人們最希望學習的語言,可是在TIOBE index(http://www.tiobe.com/index.htm?tiobe_index)分析裡, 僅佔2~3%比例。
RoR邁向2.0,強化企業開發機制http://www.ithome.com.tw/itadm/article.php?c=46863
…新版Rails在資訊安全、交易與效能上的改進,李維認為:「讓RoR滿足企業級開發需求,不只是個人或小型開發。」但他不認為RoR會取代企業現有的開發方式,他認為RoR快速的雛形開發能力,可以協助企業解決像入口網站或對外網路服務,這類經常需要應變的開發需求,而像核心系統或複雜應用,還是需要更強的開發語言。…
RailsYet To Make Dent in the Enterprise (http://reddevnews.com/news/print.aspx?editorialsid=9271)
(http://raderdotnet.spaces.live.com/blog/cns!3461738A506327E!500.entry)
People have strong opinions about Rails, and there's a lot of trashtalk about it," Cox observed. "Is it all FUD [fear, uncertainty, anddoubt] or is it real?"Cox說"人們對Rails有很大的意見,關於它的一些閒言閒語也很多,Rails是充滿了FUD[擔憂,不確定,懷疑](fear,uncertainly, anddoubt),還是說它是很實際的東西?"
"When the criticisms are directed at Rails in general because it'swritten in Ruby, and because it's a dynamic language, then it's FUD," saidObie Fernandez. "When it's directed at Rails because it's not appropriatefor the enterprise or for applications with large domain models, then I thinkthere's more of a gray area."ObieFernandez談到:"基本上當人們直接批評Rails時,都是因爲它是用Ruby寫的,而Ruby是動態語言(dynamic language),因此Rails是充滿FUD[擔憂,不確定,懷疑]的。人們針對Rails,是因爲它不適合於企業開發,或者說它不適合有著很複雜的領域模的應用程式的開發,因此我認爲還有很多的灰色地帶(gray area)"。
Rails看似容易的框架,越是向內挖掘,越是發現很深的奧妙,這奧妙有時候是不易理解的。它集成HTML產生、Scaffold、tag_helper,使分散的一塊塊,統一納入它的管制;使用script/generate讓你把基礎建設架起來;用動態語言的優勢,自動把model的table欄位名稱對應到類別屬性。
目前Rails少了什麼?Scaffold讓你很方便建立基本的單檔增修刪,若你的資料結構少了ID這個欄位,修刪功能就失效。基本的增修刪頁面雖然陽春了點,但是確實可快速滿足在「用一次即丟」的應用程式,特別在研討會後的即時問卷場合很適用。企業需要什麼
(1)企業需要進階的查詢功能
(2)在ID帶名稱上,Rails並未支援
(3)沒有足夠的畫面視覺化編輯
(4)並沒有資料字典的概念,譬如說,欄位名稱是Total_amount,經Human_Name後是Total amount,但是慣於在中文環境下, 必須有一種統一管理的機制, 把它變成「總金額」
(5)缺少頁面繼承概念,雖然可以用<%=render :partial => 'form' %>共用部分表單,一個系統, 不同的頁面應會有基本的相同之處, 如果有繼承, 那會便於維護
(6)防呆機制需再加強,假設頁面 <%= text_area("cruncher", "crunch", {:rows => 3} ) %>正常對應到資料表的欄位,但資料表並無cruncher時,並不會引發錯誤,它仍然視為正常。
(7)資料繫結需再加強。html表單元件,和資料欄位繫結, 需有一套便於設定的辦法。
(8)Scaffold若能產生主/明細的頁面,會使實用性大大提升。

最最大的問題在ms sql server資料的存取上,在LAMP組合,有極大的困難,和既有系統整合欠佳

http://www.ruby-lang.org.cn/forums/thread-3128-1-1.html

http://www.javaeye.com/topic/159903

===================引 用 frappe 文 章===================
1.Ruby on Rails為什麼號稱開發速度是Java的10倍,PHP的5倍
2.MVC
frappe
中階會員


發表:88
回覆:114
積分:95
註冊:2008-10-21

發送簡訊給我
#4 引用回覆 回覆 發表時間:2009-07-23 23:15:27 IP:61.20.xxx.xxx 訂閱
原來pedro大大是Ruby on Rails的高手,
我最近用RoR寫一個簡單的專案

我第一次寫網頁程式,有好多問題書上都沒教,

我有3張table
產品,人名,領用紀錄

我在新增領用紀錄的時候,需要切換產品及人名頁面去點選,
然後將點選的資料帶入領用紀錄的table

但是切換頁面的過程中,不知道要如何去儲存點選的資訊

不知道有沒有相關的範例可以參考,或有什麼關鍵字可以搜尋到相關資料??

ps.我的問題好像很白癡> < 可能是我只會Rails,Ruby根本就不熟> <
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-07-24 09:43:13 IP:60.248.xxx.xxx 未訂閱
我學RoR在(2007/10~2008/03),也只是五個月左右,都只是學習階段,沒實際用在真實專案
後來並沒有再深入學習及挖掘,時間經過那麼久,而且目前已沒有環境可測試,現在剩下的大概只是觀念可交流,
不知道可不可以幫上您?

或許網上有這方面的前輩,可以指點您一二?

當初我依"Agile Web Development with Rails"這本書(網路上可尋找到英文或簡中電子版,請自行尋找,台灣書店裡也有中譯本),從頭看到第十幾章,就書中舉的案例,從頭練習到尾,可以看到整體面貌.

就您所提的問題,記得好像可以放變數在Model或Helper、Partial等方式,去記錄點選的資料,
如下例(請用word轉換成半形):

[code ruby]
#Views\look\input.rhtml
<html>
<head>
<title>Text Area測試</title>
</head>
<body>
<%= start_form_tag ({:action => "at"}, {:method => "post"}) %>
請輸入三個數字
<br>
<%= text_area("cruncher", "crunch", {:rows => 3} ) %>
<br>
<input type="submit"/>
<%= end_form_tag %>
</body>
</html>

#look_controller.rb
class LookController < ApplicationController
def at
@data_hash = params[:cruncher]
@cruncher = Cruncher.new(@data_hash[:crunch])
#@cruncher = Cruncher.new(@data_hash)
@data = @cruncher.crunch
p @data
end
def input
end
end

#Models\cruncher.rb
class Cruncher
attr_reader :crunch
attr_writer :crunch
def initialize(data)
@crunch = data.split("\n")
@crunch.sort!
end
end

#Views\look\at.rhtml
<html>
<head>
<title>Text Area輸出結果</title>
</head>
<body>
剛才輸入的數字依序為
<br>
<%@data.each { |e| %>
<%= e %><br>
<% } %>
<br>
</body>
</html>
[/code]


===================引 用 frappe 文 章===================
原來pedro大大是Ruby on Rails的高手,
我最近用RoR寫一個簡單的專案

我第一次寫網頁程式,有好多問題書上都沒教,

我有3張table
產品,人名,領用紀錄

我在新增領用紀錄的時候,需要切換產品及人名頁面去點選,
然後將點選的資料帶入領用紀錄的table

但是切換頁面的過程中,不知道要如何去儲存點選的資訊

不知道有沒有相關的範例可以參考,或有什麼關鍵字可以搜尋到相關資料??

ps.我的問題好像很白癡> < 可能是我只會Rails,Ruby根本就不熟> <
編輯記錄
pedro 重新編輯於 2009-07-24 09:45:49, 註解 無‧
frappe
中階會員


發表:88
回覆:114
積分:95
註冊:2008-10-21

發送簡訊給我
#6 引用回覆 回覆 發表時間:2009-07-25 00:16:26 IP:61.20.xxx.xxx 訂閱
這幾天try來try去終於把點選資料的功能完成哩,如下圖

領用人我是記錄id,要join領用人的table把姓名顯示,
try了老半天都做不出來> <
我有買Agile Web Development on Rails那本書,翻來翻去還是沒什麼頭緒,

碳粉
class Cartridge < ActiveRecord::Base
has_many :sells
end

領用人
class Ordername < ActiveRecord::Base
belongs_to :sell
end

領用紀錄
class Sell < ActiveRecord::Base
belongs_to :cartridge
has_one :ordername
end

下圖的畫面是在view/cartridges/show.html.erb裡面
我model裡面的關聯設定好了,但是不知道要怎麼去將領用人id連接name
HTML不知道要如何去寫/ . \


[code xml]

機型: <%= @cartridge.machine_type %>


碳粉型號: <%= @cartridge.cartridge %>


顏色: <%= @cartridge.color %>


單位: <%= @cartridge.unit %>


廠牌: <%= @cartridge.brand %>


庫存: <%= @cartridge.inventory %>


安全數量: <%= @cartridge.safe %>


/edit">編輯




領用碳粉紀錄


">新增領用紀錄









<%
even_odd=0
for sell in @cartridge.sells
even_odd=1-even_odd
%>








<% end %>

日期 領取數量 領用人
<%=h sell.created_at %> <%=h sell.number %> <%=h sell.ordername_id %> ">詳細資料 /delete">刪除

[/code]


frappe
中階會員


發表:88
回覆:114
積分:95
註冊:2008-10-21

發送簡訊給我
#7 引用回覆 回覆 發表時間:2009-07-25 08:19:01 IP:118.231.xxx.xxx 訂閱
全部改用SQL命令來寫就完成了,哀~~~~

"select *,name from sells left outer join ordernames on ordername_id=ordernames.id where cartridge_id=#{@cartridge.id} "
系統時間:2024-03-29 4:12:15
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!