天亮了 昨晚是平安夜
躺在草丛中的两只兔子似乎还有生命迹象
但却一动也不动的躺在阿虎旁边 叫也叫不醒
泰迪也晕头转向的从水池中爬了出来
萤幕上杂讯逐渐消失中
比赛依然继续进行着
我们今天再往前走一小步
以前我们在处理js最常用的是remote:true
先整合 有空再回头解释
作法跟原本在处理AJAX 经常使用remote:true 并透过
escape_javascript 与选择器来达成资料不重新整理的同步
DHH 在 去年底给了一个新魔法
在hotwire的帮助下,有机会可以不写js就达成资料同步的结果
首先把controller的资料render成json
# @room.save
respond_to do |format|
if @room.save
format.html { redirect_to rooms_url, notice: 'Tweet was successfully created.' }
format.json { render :show, status: :created, location: @room }
else
format.turbo_stream { render turbo_stream: turbo_stream.replace(@room, partial: "rooms/form", locals: { room: @room}) }
format.html { render :new }
format.json { render json: @room.errors, status: :unprocessable_entity }
end
end
在前端建立index.json.jbuilder让hotwire可以与他沟通
/app/views/rooms/index.json.jbuilder
json.array! @rooms, partial: "rooms/room", as: :room
/app/views/rooms/_room.json.jbuilder
json.extract! room, :id, :name, :number_of_gamer, :board, :status, :created_at, :updated_at
json.url room_url(room, format: :json)
/app/views/rooms/_room.html.erb
<%= turbo_frame_tag dom_id(room) do %>
<div class="">
<div><%= room.name %></div>
</div>
<% end %>
最後在房间列表也透过 turbo_stream_from
打包起来
/app/views/rooms/index.erb
<h1>Rooms</h1>
<%= turbo_stream_from "rooms" do %>
<%= render "rooms/form", room: @room %>
<% end %>
<%= turbo_frame_tag "rooms" do %>
<%= render @rooms %>
<% end %>
这样我们就可以透过turbo_stream_from显示房间列表了
$XEC
<<: [从0到1] C#小乳牛 练成基础程序逻辑 Day 17 - while 无穷回圈
大家好,我是毛毛。ヾ(´∀ ˋ)ノ 废话不多说开始今天的解题Day~ 26. Remove Dupl...
在上篇有提到用 Selenium + WebDriver 就可以让程序帮你自动发文, 但有试过的朋友...
前言 这是 Obsidian 使用教学 — 插件篇的第 1 篇文章,从这个章节开始要进入到进阶的主题...
在前两篇简单操作了阿里上面的ACK服务,今天要分享的是使用ingress,怎麽用一个IP去分享多个服...
在 WordPress 的文章中预设会显示作者、发布日期资讯。 如果网站作者只有一位,可以选择不显示...