Я хочу создать страницу, на которой пользователь может изменять данные на этой странице.
Поэтому я попытался использовать вызов ajax, чтобы заменить исходную строку таблицы данных в форму.
Новая форма может быть создана и заменить строку моим кодом в настоящее время. Но после того, как вы отредактировали данные в этой форме и нажали «Обновить», ничего не произошло. В моей консоли показано что-то вроде:
ActionController::RoutingError (No route matches "/projects/5"):
Я не могу понять, почему это не сработало.
Коды отображаются следующим образом:
index.html.erb
<tr>
<th>Name</th>
<th></th>
<th></th>
</tr>
<% @projects.each do |project| %>
<tr id="project_<%= project.id %>">
<td><%= link_to project.name, project %></td>
<td><%= link_to 'Edit', edit_project_path(project), :method => :get, :remote => true %></td>
<td><%= link_to 'Destroy', project, :confirm => 'Are you sure?', :method => :delete , :remote => true %></td>
</tr>
<% end %>
edit.js.erb
$('#project_<%= @project.id%>').replaceWith("<%= escape_javascript(render :partial=>'edit') %>");
_edit.html.erb
<tr id="project_<%= @project.id%>">
<%= form_for(@project, :remote => true) do |f| %>
<%= form_authenticity_token %>
<td><%= f.text_field :name %></td>
<td><%= f.submit 'Update' %></td>
<td><%= link_to 'Destroy', @project, :confirm => 'Are you sure?', :method => :delete , :remote => true %></td>
<% end %>
</tr>