根据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) 我有一个我想要转换的示例字符串,由此:
#21inch-#25inch
Run Code Online (Sandbox Code Playgroud)
对此:
#21inch #22inch #23inch #24inch #25inch
Run Code Online (Sandbox Code Playgroud)
使用Ruby,请告诉我如何做到这一点.
我正在使用带有多个选择框的 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)