[英]Ruby on Rails - Edit/Update Content on Show layout
我正在嘗試找出如何實現一個系統,該系統允許我更新某些字段而無需離開當前頁面,也無需重新加載它。
我已經在很多網站上看到了這一點,包括在StackOverflow上編輯評論。
例:
您撰寫並發表了Comment
。 在查看所有已發布的Comments
,有一個“編輯”按鈕,可將該Comment
回到適當的text_area
位置,允許您更新文本,還有一個按鈕用於保存文本。 然后,更新后的Comment
看起來正確,您無需導航或刷新。
我相信他們正在做的是:
text_area
生成/顯示隱藏的布局。 有沒有很好的例子來實現這一目標? 我什至不確定這種更新使用了什么術語。
謝謝你的幫助。
有許多示例可以實現您的目標。
請嘗試給我一個簡單的例子,以使您更好地理解。
假設您有一個Post
模型
class Post
end
您的索引頁面如下所示(在控制器索引@posts = Post.all
<% #app/views/posts/index.html.erb %>
<div id="posts">
<%= render @posts %>
</div>
post對象的局部:
<% #app/views/posts/_post.html.erb %>
<div id="<%= dom_id(post)%>">
<%= post.title %>
</div>
並使用remote屬性更新form_for
標簽
form_for @post, remote: true
現在,您的創建可以將當前帖子添加到div#posts或替換整個div。
<% #app/views/posts/create.js.erb %>
$("#posts").append('<%=j(render @post)%>')
您的更新可以通過將div替換為更新后的帖子的dom_id()
來更新一項。
<% #app/views/posts/update.js.erb %>
$("#posts ##{dom_id(@post)}").html('<%=j(render @post)%>')
就這樣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.