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!