小编Ste*_*Hej的帖子

Rails5 ActionCable与对话聊天

根据DHHs Rails5 ActionCable聊天示例,我将创建另一个带有对话和许多消息的示例:

rails g model conversation 

class Conversation < ApplicationRecord
  has_many :messages
end

rails g model message content:text conversation:references
Run Code Online (Sandbox Code Playgroud)

视图/会话/ show.html.erb

<h1>Conversation</h1>

<div id="messages">
  <%= render @messages %>
</div>

<form>
  <label>Say something:</label><br>
  <input type="text" data-behavior="conversation_speaker">
</form>
Run Code Online (Sandbox Code Playgroud)

视图/消息/ _message.html.erb

<div class="message">
  <p><%= message.content %></p>
</div>
Run Code Online (Sandbox Code Playgroud)

我的问题是如何编写一个通道逻辑,将与其对话相关的每条消息写入数据库:

首先,我在控制台上录制了一个对话和一条消息

Conversation.create
Message.create(conversation_id: '1', content: 'hello')
Run Code Online (Sandbox Code Playgroud)

之后我创造了一份工作

rails g job MessageBroadcast

class MessageBroadcastJob < ApplicationJob
  queue_as :default

  render_message(message)
  def perform(data)
    message = Message.create! content: data
    ActionCable.server.broadcast 'conversation_channel', message: render_message(message)
  end

  private
    def render_message(message)
      ApplicationController.renderer.render(partial: …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails ruby-on-rails-5 actioncable

5
推荐指数
1
解决办法
1290
查看次数

Ruby将范围测量的字符串转换为测量列表?

我有一个我想要转换的示例字符串,由此:

#21inch-#25inch
Run Code Online (Sandbox Code Playgroud)

对此:

#21inch #22inch #23inch #24inch #25inch
Run Code Online (Sandbox Code Playgroud)

使用Ruby,请告诉我如何做到这一点.

ruby

1
推荐指数
1
解决办法
78
查看次数

Multiline Bootstrap-Select with height: auto

我正在使用带有多个选择框的 Bootstrap-Select

white-space: normal;
height: auto
Run Code Online (Sandbox Code Playgroud)

所以它变成了多行,但是height: auto在盒子里长大(我认为)底部有太多空间(用红线标记)

有机会去掉吗?

具有自动高度的选择器

片段:

white-space: normal;
height: auto
Run Code Online (Sandbox Code Playgroud)
select[multiple],
select[size] {
  height: auto;
}
select,
textarea {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}
select {
  text-transform: none;
}
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  font: inherit;
  margin: 0;
}
* {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}
.input-group {
  border-collapse: separate;
}
.bootstrap-select .btn {
  /* enables multiline on selectpicker */
  white-space: normal !important;
  word-wrap: break-word; …
Run Code Online (Sandbox Code Playgroud)

css twitter-bootstrap twitter-bootstrap-3

1
推荐指数
1
解决办法
9025
查看次数