我正在用rails 7和hotwire构建一个应用程序。
我有一个带有邀请消息的div,当邀请被拒绝时,应该触发2个动作:
I-更新我的flash消息显示"你拒绝了邀请"在我的烤面包机(工作)II-删除包含邀请的div
我的turbo_stream.update()对于我的flash没有问题,我没有从。我的remove(),但是什么都没有发生,消息仍然在这里。
我尝试使用其他方法,即:replace()与空元素,但仍然不起作用。
我很困惑为什么涡轮忽略这个指令,你知道吗?
代码:
我的观点:
div.mx-auto.company class='w-[860px]'
- if current_user.pending_mailboxes_invitation.present?
div.border.border-white.border-2.rounded-lg.p-10 id="invitation"
p.profile-subtitle = "Vous avez été invité à rejoindre la boîte mail #{current_user.pending_mailboxes_invitation.mailbox.name}"
p= "Si vous acceptez, la boîte mail sera ajoutée à votre liste et vous la retrouverez dans le projet #{current_user.pending_mailboxes_invitation.mailbox.project.name}"
div.flex.my-3.gap-5.items-center
= link_to 'Accepter', confirm_mailboxes_user_url(current_user.pending_mailboxes_invitation), data: { turbo_method: :put }, class: "btn btn-primary-dark"
= link_to 'Décliner l'invitation', mailboxes_user_url(current_user.pending_mailboxes_invitation), data: { turbo_method: :delete }
hr/
# [...]
我的控制器
def destroy
@mailboxes_user.destroy
flash.now[:success] = t('.success.invitation')
respond_to do |format|
format.turbo_stream
end
end
我destroy.turbo_stream.slim
= turbo_stream.remove('invitation')
= turbo_stream.update('flash', partial: 'shared/flash', locals: {flash: flash} )
谢谢你的时间和帮助:)
我怀疑这是因为id "邀请";没有应用到消息div。请尝试以下haml代码并再次检查。应该可以。
div.border.border-white.border-2.rounded-lg.p-10#invitation