[英]Using At.JS @Mentions with Devise [Ruby on Rails 4]
根據我在研究此問題並從頭開始創建用戶而沒有設計的經驗教訓。 是因為Devise不接受[GET]
請求,因此無法使用JSON訪問用戶模型。 有沒有人實施過一個同時包含At.js
和Devise
的解決方案? 如何將用戶模型連接到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.