我跑进创建此代码:什么是类名:: Rails中
run Athlete::Create do |op|
return redirect_to op.model, notice: 'Athlete was successfully created.'
end
我已经习惯了标准ClassName.create(params)
选项。
任何想法是什么ClassName::Create do |op|
,或甚至被称为?
我跑进创建此代码:什么是类名:: Rails中
run Athlete::Create do |op|
return redirect_to op.model, notice: 'Athlete was successfully created.'
end
我已经习惯了标准ClassName.create(params)
选项。
任何想法是什么ClassName::Create do |op|
,或甚至被称为?
你所看到的是一个叫Trailblazer宝石从他们的github上指出:
开拓者的Ruby框架提供了新的高层次的抽象。它轻轻地执行封装,一个直观的代码结构,并为您提供面向对象的体系结构。
谢谢,你是对的。只有这些少量的信息是超级有用的!请随时提出问题,以便其他人可以更轻松地进行Google搜索。现在我会为这个问题添加更多内容,以便我有一个答案。 – TallOrderDev
干杯。如果您满意,请随时标记此正确答案。 – Sean
任何想法的
ClassName::Create do |op|
是,或者甚至被称为?
这只是一个普通的消息发送块参数。
Ruby允许您使用::
进行消息发送。 IOW,你所问的行与
ClassName.Create do |op|
然而,这实际上不是代码。 这是代码如下所示:
run Athlete::Create do |op| return redirect_to op.model, notice: 'Athlete was successfully created.' end
红宝石让你离开了括号在消息中发送的参数列表,所以这相当于
run(Athlete::Create) do |op|
return redirect_to op.model, notice: 'Athlete was successfully created.'
end
它发送消息run
到self
,通过表达式Athlete::Create
和块作为参数。
我认为它是'run(Classname :: Create){| op |实际上。 – fylooi
感谢您解决这个问题。看起来Trailblazer是所有这些的原因,这首先解释了这个代码的用法!非常感谢你解释块的问题。很高兴看到引擎盖下发生了什么!随时upvote。 ;)我给你一个upvote,只是低到显示:( – TallOrderDev
你的应用中有'services'文件夹吗?它可能是放在'Athlete'命名空间下的'Create'服务吗? –
是安装的宝石开拓者? – Sean
Hey Slava我没有服务文件夹。 肖恩我已经安装了开拓者。从下面的答案看来,这是我的问题。 – TallOrderDev