2

我的任务是编辑数据的值。为此,我创建了一个edit_userlist页面并创建了用于编辑的代码。但是通过运行我得到了一个错误,它显示如下

Couldn't find User without an ID

这个链接的网址是:http://localhost:3000/edit_userlist.1

我的控制器页面是

def edit_userlist
   @user = User.find(params[:id])
 end

我的编辑索引页是

<% @users.each do |user| %>
  <tr>
    <td><%= user.name %></td>
    <td><%= user.age %></td>
    <td><%= user.country %></td>
    <td><%= user.state %></td>
    <td><%= user.email %></td>
    <td><%= user.phone %></td>
    <td><%= link_to 'Show', user %></td>
    <td><%= link_to 'Edit', edit_userlist_path(user) %></td>
    <td><%= link_to 'Destroy', user, :method => :delete, :data => { :confirm => 'Are you sure?' } %></td>
  </tr>
<% end %>

我的 edit_userlist 页面是

<%= form_for(@user) do |f| %>
  <% if @user.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@user.errors.count, "error") %> prohibited this user from being saved:</h2>

      <ul>
      <% @user.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= f.label :name %><br />
    <%= f.text_field :name %>
  </div>
  <div class="field">
    <%= f.label :age %><br />
    <%= f.text_field :age %>

  </div>
  <div class="field">
    <%= f.label :country %><br />
    <%= f.text_field :country %>
  </div>
  <div class="field">
    <%= f.label :state %><br />
    <%= f.text_field :state %>
  </div>
  <div class="field">
    <%= f.label :email %><br />
    <%= f.text_field :email %>
  </div>
  <div class="field">
    <%= f.label :phone %><br />
    <%= f.text_field :phone %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

我给页面提供了正确的路由。我的routes.rb页面是

match '/edit_userlist/' => 'users#edit_userlist', :as => :edit_userlist

如何传递 id 来编辑值?

4

1 回答 1

4

将您的路线更改为

match '/edit_userlist/:id' => 'users#edit_userlist', :as => :edit_userlist
于 2013-02-07T06:56:18.667 回答