假设我有一个在View中定义的表单
module Admin
module Views
module Dashboard
class New
include Admin::View
def form
form_for :link, routes.links_path do
text_field :url
submit 'Create'
end
end
...
我想念什么吗?因为下面的示例不起作用:
module Admin
module Views
module Dashboard
class Index
include Admin::View
include Dashboard::New
...
答案 0 :(得分:2)
您不能以这种方式将代码从一个视图共享到另一个视图。 您的代码段无效,因为Ruby不允许将类包含到其他类中。因此,如果要执行此操作-应该使用帮助程序模块。对于您的情况,它应如下所示:
module Admin
module Helpers
module Dashboard
def form
form_for :link, routes.links_path do
text_field :url
submit 'Create'
end
end
end
end
end
并将其包含在您的视图中
module Admin
module Views
module Dashboard
class New
include Admin::View
include Admin::Helpers::Dashboard
# ...
end
end
end
end
或将其全局包含在您的应用中
# apps/admin/application.rb
view.prepare do
include Hanami::Helpers
include Admin::Helpers::Dashboard
end