簡體   English   中英

在Devise中使用At.JS @Mentions [Ruby on Rails 4]

[英]Using At.JS @Mentions with Devise [Ruby on Rails 4]

根據我在研究此問題並從頭開始創建用戶而沒有設計的經驗教訓。 是因為Devise不接受[GET]請求,因此無法使用JSON訪問用戶模型。 有沒有人實施過一個同時包含At.jsDevise的解決方案? 如何將用戶模型連接到JS component@Mentions symbol

通過@Seichleon進行的更改已更新。

atwho-post.coffee

jQuery ->
  $('[data-mentionable]').atwho({
    at: "@",
    data: '<%= mentionables_path %>',
    insertTpl: '${username}',
    displayTpl: '<li data-id="${id}"><span>${username}</span></li>',
    limit: 10,
  });

_form.html.erb(等待數據屬性)

<%= f.text_area :body, maxlength: @maximum_length, id: 'body', data: {behavior: 'autocomplete'} %>

有兩件事。 首先,讓我們創建一個操作來處​​理如何吸引用戶。

添加路線:

get 'share/users', as: :mentionables

將實際操作添加到控制器:(在我的情況下,該控制器將是共享控制器)

class ShareController < ApplicationController
    def users
        render json: User.all, root: false
    end
end

現在,每當您訪問share/users您都應該得到以下信息:

[  
    {  
       "id":2,
       "email":"test@2build.it",
       "name": "sergio",
       ...
    },
    ...
]

這樣,您可以像這樣設置at.js:

$('[data-mentionable]').atwho({
    at: '@',
    data: '<%= mentionables_path %>',
    insertTpl: '${name}',
    displayTpl: '<li data-id="${id}"><span>${name}</span></li>',
});

這樣,它應該根據用戶名列出用戶。

發布_form.html.erb視圖

<%= f.text_area :body, maxlength: @maximum_length, id: 'body', data: {behavior: 'autocomplete'} %>

atwho-post.coffee

jQuery ->
  $('[data-behavior="autocomplete"]').atwho({
    at: "@",
    data: "/share/users.json",
    insertTpl: '${username}',
    displayTpl: '<li data-id="${id}"><span>${username}</span></li>',
    limit: 15,
  });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM