2

データの値を編集するタスクがあります。そのために、edit_userlistページを作成し、編集用のコードを作成しました。しかし、実行すると、次のように表示されるエラーが発生しました

Couldn't find User without an ID

このリンクの URL は次のとおりです。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 に答える