【发布时间】:2018-07-06 22:55:02
【问题描述】:
我正在使用this repo 在 Rails 和 React 项目中的 2 个用户之间创建聊天系统。我已经能够将用户输入记录到控制台中,并且根据 repo 创建了 messages_controller 和 message_threads_controller。
但是,我无法将消息持久保存到 Rails db,然后在将消息发送到 Pusher 之前使用 Pusher 对用户进行身份验证。主要是因为消息发送到 Rails 时,from_uid、to_uid 和 thread_uid 都不存在。像这样将消息发送到rails:
sendMessage = (event) => {
event.preventDefault();
const {message} = this.state;
axios.post('/api/v1/messages', {message: message})
.then((response) => {
console.log(response);
})
console.log('send Message')
this.setState({'message': message});
console.log(this.state.message);
}
在我的 routes.rb 文件中我有这个
resources :messages
get 'threads/:id', to: 'message_threads#index'
post '/pusher/auth', to: 'pusher#auth'
我缺少一些必需的参数,这是我得到的错误。
Pusher::Error - Bad request: Missing required parameter:
按照this tutorial的流程是,消息需要先被rails数据库持久化,然后再发送到Pusher。
我现在的问题是如何生成在the app here 的 React 端使用的额外参数(from_uid、thread_uid、to_uid)以启用消息创建?
另外,如何使用 Pusher 对用户进行身份验证?
根据这个Stack Overflow link,他们从Rails 中得到这样的CSRF 值-csrf = $('meta[name=csrf-token]').attr('content')。但我无法在 React 中实现相同的功能。
【问题讨论】:
标签: ruby-on-rails ruby pusher