我有以下操作方法:
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 我应该如何重命名相关视图?