lucky
v1.3.0

目標:防止錯誤,忘記大多數性能問題,並花更多的時間在代碼上,而不是調試和修復測試。
總而言之,使寫作令人驚嘆的Web應用程序快速,有趣且容易。
Lucky有一系列新的指南,可以輕鬆入門。
隨時打個招呼或在我們的聊天室問問題。
或者,您可以使用Lucky Jumpstart複製一個真正的工作應用程序。
要安裝Lucky,請閱讀操作系統安裝幸運指南。該指南將帶您安裝用於生成新幸運應用程序的命令行實用程序。
通過在Twitter上關注@luckyframework來保持最新狀態。
API(主要)
class Api::Users::Show < ApiAction
get " /api/users/:user_id " do
user = UserQuery .find(user_id)
json UserSerializer .new(user)
end
endget "/sign_in"之類的自定義路由。user_id路由參數,因此生成了一個user_id方法。json渲染JSON。提取可重複使用的JSON響應的串行序列。 # Set up the model
class User < BaseModel
table do
column last_active_at : Time
column last_name : String
column nickname : String ?
end
end?當列可能nil ,要進行類型。然後,Crystal將幫助您記住不要調用它無法使用的方法。last_active_at和last_name設置存在驗證,因為它們沒有標記為nilable)。 # Add some methods to help query the database
class UserQuery < User::BaseQuery
def recently_active
last_active_at.gt( 1 .week.ago)
end
def sorted_by_last_name
last_name.lower.desc_order
end
end
# Query the database
UserQuery .new.recently_active.sorted_by_last_nameUser::BaseQuery將自動生成。從中繼承來自定義查詢。String列上的lower方法來確保Postgres在小寫中對所有內容進行分類。gt使用戶在1週前的持久活動。 Lucky具有許多有力的抽象來創建複雜的查詢,並鍵入特定的方法(例如lower )。 class Users::Index < BrowserAction
get " /users " do
users = UserQuery .new.sorted_by_last_name
render IndexPage , users: users
end
end
class Users::IndexPage < MainLayout
needs users : UserQuery
def content
render_new_user_button
render_user_list
end
private def render_new_user_button
link " New User " , to: Users :: New
end
private def render_user_list
ul class: " user-list " do
users.each do | user |
li do
link user.name, to: Users :: Show .with(user.id)
text " - "
text user.nickname || " No Nickname "
end
end
end
end
endneeds users : UserQuery告訴編譯器必須將其傳遞給UserQuery類型的用戶。Users::New 。 with傳遞參數: Users::Show.with(user.id) 。不再嘗試記住路徑助手以及助手是否被複數 - 如果您忘記將參數傳遞到路線,Lucky將在編譯時通知您。column nickname : String?如果您只是使用text user.nickname ,那麼Lucky將無法編譯該頁面,因為它不允許打印nil 。因此,我們添加了一個後備"No Nickname" 。不再意外地在HTML中打印空文字! 您需要確保安裝水晶依賴性。
shards installcrystal spec 。 參見貢獻
我們愛所有努力使幸運變得更好的社區成員。如果您是這些人之一,我們想給您一件T卹!
要獲得襯衫,我們要求您為幸運做出了重大貢獻。這包括諸如提交帶有錯誤修復和功能實現的PR,幫助其他成員解決問題的事情,以及使用Lucky部署現實世界應用程序!
要要求您的襯衫,請填寫此表格。
Paulcsmith Paul Smith-幸運的原始創造者
用貢獻製成。
lucky watch大量基於哨兵。謝謝@samueleaton!