0


次のアクションメソッドがあります。

class CommandsController < ApplicationController
.
.
.
  def usersList
    @command = Command.find_by(id: params[:id])
    @users_list = @command.user_commands.paginate(page: params[:page], per_page: 10)
  end
end

次のビュー: users_list.html.erb

<% provide(:title, "Command list") %>
<h1>Lista Utenti per <%= @command.content %></h1>

<%= will_paginate @users_list %>

<ul class="users">
   <% @users_list.each do |user| %>

   <li><%= user.name.capitalize %>, <%= user.email %></li>

<% end %>
</ul>

そしてroutes.rbで

  get 'commands/:id/usersList' => 'commands#users_list', as: :list

lochalhost:3000/commands/1/usersList に移動する理由がわかりません。次のエラーが表示されます。

undefined method `content' for nil:NilClass

行を参照<h1>Lista Utenti per <%= @command.content %></h1> なぜそうするのですか?アクションを呼び出すとき、ページをレンダリングする前と、メソッド内のコードを実行した後ですか?

名前を変更して問題を解決しました:usersList --> userslistそしてusers_list.html.erb --->userslist.html.erb、routes.rb で ---->get 'commands/:id/userslist' => 'commands#userslist', as: :list 命名規則がわかりません... アクション usersList を宣言する場合、関連するビューの名前をどのように変更すればよいですか?

4

1 に答える 1

0

アクション名を に変更する必要がありますusers_list

于 2013-09-24T08:33:37.563 に答える