使用 enable/disable 在表演路线中编辑模型

Edit a model in the show route using enable/disable

这里是菜鸟,刚刚完成了 ROR 入门教程,

此外,完全披露,这个问题与我的相似:

In Rails, is it possible to use the show view as an edit view?

但没有回答我的问题

我正在尝试弄清楚如何使用显示路径来显示模型,但是如果用户单击文本块底部的编辑按钮,则它会启用对当前文本块的编辑该模型,并在保存后使用新编辑的文本更新该模型。

我并不是真的在询问 jquery 来执行此操作,更多的是 ruby 上的 rails 代码以与编辑共享该显示路线。换句话说,我只想知道在显示路线上按下编辑按钮时是否可以在不重定向到另一个页面的情况下做到这一点。如果是这样怎么办? (如果你有时间,你如何让文本块启用文本编辑?)

谢谢!

是的,这很简单,事实上,您根本不需要做太多事情。

以正常形式包装您的字段(与您在 _form.html.erb 中所做的相同)。然后隐藏字段并显示值。表单将正常提交到控制器中的更新操作。

看起来像这样

<%= form_for @thing do |f| =%>
  <div class='field'>
    <%= f.text_field :some_attribute %>
  </div>

  <div class='value'>
    <%= @thing.some_attribute %>
  </div>

  <div class='field'>
    <%= f.submit %>
  </div>
<% end %>

当您要编辑时,隐藏 .values 并显示 .fields。

编辑:明确地说,关于视图是否可以是 'edit view' 并没有规定,您可以随意在任何地方添加您想要的任何表单,唯一重要的是表单的位置将其数据发布到。