帮助构建需要覆盖 Ruby 控制器方法的插件

你好,

我正在尝试创建一个插件,在 UI 中创建主题时显示一个复选框,该复选框基本上会将新属性保存在主题表中。基本上,我需要保存该属性,无论复选框是否被选中,然后在访问主题页面时显示新属性。
我从后端开始,添加了一个迁移来为主题创建一个新的布尔属性,默认值为 false,接下来我正在处理控制器。但我还没有找到一种方法可以在 TopicsControllerposts 函数中添加新属性。
我在教程中找不到类似的东西。
预先感谢!

after_initialize do

  module ::DiscourseXPlugin
    class ::TopicsController

      def posts
        Rails.logger.info '┌────────────┐'
        Rails.logger.info '│ Here we go │'
        Rails.logger.info '└────────────┘'
      end
    end
  end
end
1 个赞

另一种方法是在控制器中创建一个新方法,例如“posts_with_new_attribute”,如果选中复选框,则通过新终结点触发该方法,但不确定这是否会更复杂。

1 个赞

您需要在 Ember 前端中使用插件出口来实现这一点。

您应该使用 TopicCustomField,而不是更改任何表。

您需要将自定义字段添加到 topic 序列化器中。

您可以参考其他实现这些功能的插件来获取一些示例。

1 个赞

那奏效了!谢谢!!