0

我正在尝试在不离开物理页面的情况下编辑页面上的微博。

在我的应用程序中,我有一个页面使用以下部分呈现用户的所有微博:

微帖子/_micropost:

<%= render 'shared/edit_micropost', object: micropost %>
<%= micropost.title %>
<%= micropost.content %>
<%= micropost.url %>
<%= raw "Tags: #{micropost.tag_list.map {|t| link_to t.capitalize, tag_path(t)}}" %>

共享/edit_micropost:

<%= link_to "edit", object, remote: true %>
<%= form_for object do |object| %>
    <%= object.text_field :title %>
    <%= object.text_area :content %>
    <%= object.text_field :url %>
    <%= object.text_field :tag_list %>
    <%= object.submit "Update", class: "btn btn-mini" %>
<% end %>

当我点击“编辑”时,我希望表单出现,以便特定微博的标题、内容、url 和 tag_list 是可编辑的。

现在,当我单击“编辑”时,我得到没有路由匹配 [GET]“/microposts/452”我不确定如何在我的 link_to 中指定工作路径。我假设我必须将 form_for 移动到 JS 文件中?

我是编程新手,非常感谢一些帮助,谢谢。

4

2 回答 2

1

有一个 gem 也许你想尝试一下,' Best in Place ' 是一个基于 jQuery 的 AJAX Inplace-Editor

还有一个由 Ryan Bates 制作的截屏视频

于 2013-09-05T04:07:44.363 回答
0

一种直接的方法是继续在页面上呈现表单,但使用 javascript 将其隐藏。然后当用户单击按钮时,再次显示它。这样,未启用 js 的用户也可以使用该表单。

然后只需remote: true在表单中设置选项以使其通过 ajax 提交并使用 ajax 回调通知用户成功或失败(如果需要)。同样,这种方法仍然允许非 js 用户使用普通请求提交表单,而启用 js 的用户将获得流畅的 ajax 功能。

于 2013-09-05T02:55:00.917 回答