turbo_stream从控制器的工作,但不能从视图
我正在使用Hotwire在Rails 7应用程序上工作。 我有一个表单模态,当subimimimimimimimimimimim时,Turbo应该从模态中删除HTML并显示闪存消息。
当我将涡轮代码放在控制器中时,我可以工作:
# emails_controller.rb
def forward
service = Email::Forward.new(
recipients: params[:recipients].split(','),
sender: current_user.email,
html: params[:html_to_forward]
).call
if service.errors.empty?
flash.now[:success] = t('.success')
else
flash.now[:error] = t('.error')
end
respond_to do |format|
format.turbo_stream do
render turbo_stream: [
turbo_stream.update('forward_modal', ''),
turbo_stream.update('flash', partial: 'shared/flash', locals: { flash: flash })
]
end
end
但是,当我尝试将相同的代码放在向前。Turbo_stream.slim视图时,它无能为力,而且我没有错误消息。
# views/emails/forward.turbo_stream.rb
= turbo_stream.update('forward_modal', '')
= turbo_stream.update('flash', partial: 'shared/flash', locals: { flash: flash })
对正在发生的事情有什么想法吗?
I'm working on a rails 7 app with hotwire.
I have a form modal, when subimited, turbo should remove html from modal and show flash message.
When i put my turbo code in my controller i works:
# emails_controller.rb
def forward
service = Email::Forward.new(
recipients: params[:recipients].split(','),
sender: current_user.email,
html: params[:html_to_forward]
).call
if service.errors.empty?
flash.now[:success] = t('.success')
else
flash.now[:error] = t('.error')
end
respond_to do |format|
format.turbo_stream do
render turbo_stream: [
turbo_stream.update('forward_modal', ''),
turbo_stream.update('flash', partial: 'shared/flash', locals: { flash: flash })
]
end
end
But when i try to put the same code in a forward.turbo_stream.slim view, it do nothing, and i have no error message.
# views/emails/forward.turbo_stream.rb
= turbo_stream.update('forward_modal', '')
= turbo_stream.update('flash', partial: 'shared/flash', locals: { flash: flash })
Any idea about what is happening ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
也许是一个错字...但是您的代码将文件引用为“视图/emails/forward.turbo_stream.rb”,但可能应该是“视图/emails/forwars.turbo_stream. slim ”?或者,也许您都有两个文件,并且仅在坏文件中具有好的代码?我用“ Action.html.Slim”与“ Action.turbo_stream.slim”犯了类似的错误。花一段时间习惯了新的命名约定。
Maybe a typo... but your code references the file as "views/emails/forward.turbo_stream.rb", but should probably be "views/emails/forward.turbo_stream.slim"? Or perhaps you have both files and have the good code only in the bad file? I've made similar mistakes with "action.html.slim" vs. "action.turbo_stream.slim". Taking a while to get used to the new naming convention.