我正在开发一个消息系统,除了这部分外,几乎所有事情都已完成。
这是我的形式:
<%= form_for :message, url: messages_path(7) do |f| %>
<%= f.text_area :message, class: 'form-control', placeholder: 'Write a message...' %>
<div class="clearfix"><%= f.submit 'Send', class: 'btn btn-primary pull-right' %></div>
<% end %>
正如您所看到的,此表单将向用户发送一条消息,该消息具有用户ID 7.因此,创建消息也有效,但我应该如何通过数据库中的用户搜索用户类型,并在用户选择后,我应该使用用户选择的id动态更改值。 messages_path(7)
这就是facebook或gmail的用法。我想没有别的办法了。我不知道该怎么做。
正如我所说,一切都已完成,我只需要通过用户名搜索作为发件人类型的收件人名称和用户选择的收件人,我必须动态替换id。
谢谢。
答案 0 :(得分:0)
我认为您可以使用AJAX从数据库中获取用户。 您可以轻松修改您在客户端发布的ID
我写了一些可能让你走上正轨的东西:)
function getUsers () {
$.getJSON('localhost/{your-file-to-user-query}',{
headers: {
'Accept': '*/*',
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
},
tagmode: "any",
format: "json",
async: false
}).success(function(data) {
var id, name, html;
data = JSON.parse(data);
if(data !== "")
{
//Parse all user data and put them in a list
for(var i = 0; i < data.length; i++){
id = data[i].id;
name = data[i].name;
html += '<div onclick = "selectUser(' + id + ')" class = "user-block">'+
'<p>' + name + '</p>'+
'</div>';
}
$('{Some_container_to_put_this_list_in}').html(html);
}
}).error(function(data) {
console.log(data);
});
}
function selectUser (id) {
//Don't know alot about RoR but you need to add an id to your form so you can select it easily
//And than you replace the current id with the id that came from the list item you clicked on
$('form').attr('url',messages_path(id))
}