次のアクションメソッドがあります。
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 を宣言する場合、関連するビューの名前をどのように変更すればよいですか?