jsw: 为现有模块添加 ref_links 功能

添加已经有的参考链接功能
更新于: 2024-05-31 13:36:45

第1步: 修改 model

代码可以参考 flash_note.rb 中此部分。

has_many :ref_links, as: :referenceable

第2步: 在views中添加

在  _item.json.jbuilder 中添加此行

json.ref_links item.ref_links.map(&:url)

第3步: controller

在对应的 xx_controller.rb 中添加 edit/create 方法

class Admin::XyzController < ApiCurdController
  include RefLinkable

  def on_create
    # ....
    update_ref_links(@item) unless params[:ref_links].nil?
  end

  alias on_update on_create
end

第4步: 验证

### posts create
POST http://localhost:3020/api/posts
Authorization: {{ token }}
Content-Type: application/json

{
  "title": "带tag的title2",
  "subtitle": "带tag的subtitle2",
  "content": "带tag的content",
  "secret_content": "带tag的secret_conent",
  "categories": [
    1,
    3
  ],
  "tags": [
    "tagx1",
    "tagx2"
  ],
  "ref_links": [
    "http://www.baidu.com",
    "http://www.sina.com.cn"
  ]
}