ruby 是否可以使用turbo帧更新Rails表单输入字段值?

4zcjmb1e  于 2023-08-04  发布在  Ruby
关注(0)|答案(1)|浏览(83)

假设我有一个使用Rails表单构建器构建的表单。它有一个文本字段,我想使用 AJAX 和turbo流动态更新输入字段的值。
是否可以使用turbo流视图中的text_field辅助程序更新相同文本字段的值,而不用新创建的文本字段替换它?
这个Gorails tutorial有一个类似的用例,但是他正在更新一个select标记的值。因此,他只是使用options_for_select helper更新了select标记的选项,这样select字段就保留在DOM上,而只有选项被替换。

8ulbf1ek

8ulbf1ek1#

没有内置的方法可以做到这一点,但制作自定义turbo流动作非常容易:

// app/javascript/application.js

Turbo.StreamActions.update_input = function () {
  this.targetElements.forEach((target) => {
    target.value = this.templateContent.textContent
  });
};
# app/views/users/_form.html.erb

<%= form_with model: @user do |f| %>
  <%= f.text_field :name %>
  <%= f.submit %>
<% end %>
# app/controllers/users_controller.rb

def update
  helpers.fields model: @user do |f|
    render turbo_stream: turbo_stream.action(
     :update_input, f.field_id(:name), "new value"
    )
  end
end
  • https:turbo.hotwired.dev/handbook/streams#custom-actions*

如果你需要另一个例子:
https://stackoverflow.com/a/76112894/207090

相关问题