Ruby on rails RubyonRails应用程序的扩展/插件/模块系统?
为Rails应用程序开发“扩展”系统的最佳方法是什么 我指的是WordPress拥有的相同类型的系统,比如将函数注册到挂钩等。然后可以从管理面板激活/停用插件Ruby on rails RubyonRails应用程序的扩展/插件/模块系统?,ruby-on-rails,plugins,module,Ruby On Rails,Plugins,Module,为Rails应用程序开发“扩展”系统的最佳方法是什么 我指的是WordPress拥有的相同类型的系统,比如将函数注册到挂钩等。然后可以从管理面板激活/停用插件 有关于在RoR软件中实现这种功能的书籍/在线资料吗?Typo使用常规rails插件来实现这一点 包含插件src的文件夹: 插件列表: 用于选择边栏插件的管理界面: 我想看看这个实现,了解一些想法。Ben Hughes提到了一些实现,它们是很好的示例,可以作为很好的启动点。如果您想从头开始推出自己的解决方案,我建议如下: 创建两个表/
有关于在RoR软件中实现这种功能的书籍/在线资料吗?Typo使用常规rails插件来实现这一点 包含插件src的文件夹: 插件列表: 用于选择边栏插件的管理界面:
我想看看这个实现,了解一些想法。Ben Hughes提到了一些实现,它们是很好的示例,可以作为很好的启动点。如果您想从头开始推出自己的解决方案,我建议如下: 创建两个表/模型、小部件和用户小部件:
Widgets:
ID (Primary Key)
Name
Description
UserWidgets:
ID (Primary Key)
User_ID (Foreign Key -> Users.ID)
Widget_ID (Foreign Key -> Widget.ID)
现在您有了一个用于将用户关联到小部件的表。我假设您的小部件主要是通过JavaScript处理的,所以添加一个新的子目录,如下所示
/public/javascripts/widgets
现在,对于Widgets表中的每个小部件,将适当的JS文件添加到此子目录。如果您有一个名为“Clock”的小部件,请添加“Clock.js”
向用户模型添加适当的关联
has_many :user_widgets, :dependent => :destroy
has_many :widgets, :through -> :user_widgets
然后在某个视图中,您可以执行以下操作:
<% @user.widgets.each do |w| %>
<%= javascript_include_tag "widgets/#{w}" -%>
<% end %>
无论小部件出现在什么页面上,都可能会将其放入布局中。如果您不想通过JavaScript使用动态小部件,您可以在视图/部分中的任何位置使用非常类似的视图代码。以下建议适用于Ruby应用程序,但可以根据您的需要进行调整: