如何根据用户点击显示数据库结果? (Rails)
How do I show database results, based on what the user clicks? (Rails)
如果这是一个愚蠢的问题,我深表歉意,但看起来我仍然不确定 Rails 在制作额外页面时应该如何工作。
我有一个设计用户模型(和一个用户控制器),每个用户都有一个整数字段“account_type”- 0 代表管理员,1 代表经理,2 代表呼叫者。
我知道如何使用索引页来展示所有类型的用户。但是,如何制作一个根据我点击的内容显示结果的页面?例如,我在菜单中有 3 个按钮:
- 管理员
- 经理
- 来电者
当我点击管理员时,我应该只会看到管理员。当我点击经理时,我应该只会看到经理等。
这就是我对控制器的全部了解,现在确定如何更改它,但还不确定如何 link 视图中的新页面。
class UsersController < ApplicationController
def index
@users = Users.all
end
end
简单且 RESTful 的方法是为每种类型创建不同的路由:
resources :admins, only: [:index]
resources :managers, only: [:index]
resources :callers, only: [:index]
这会创建路由 /admins
、/managers
、/callers
,每个路由都去往一个单独的控制器:
class AdminsController
# GET /admins
def index
@users = User.admin
render 'users/index'
end
end
class ManagersController
# GET /managers
def index
@users = User.manager
render 'users/index'
end
end
class CallersController
# GET /callers
def index
@users = User.caller
render 'users/index'
end
end
要创建适用于每种类型用户的按钮,最简单、最容易访问的方法是使用良好的旧链接并将它们设置为看起来像按钮的样式。
<%= link_to 'Admins', admins_path %>
<%= link_to 'Managers', managers_path %>
<%= link_to 'Callers', callers_path %>
您还想设置 ActiveRecord::Enum 来处理您的整数列:
class User < ApplicationRecord
# ...
enum account_type: {
admins: 0,
managers: 1,
callers: 2
}
end
如果需要,下一步将是重构和减少重复。
如果这是一个愚蠢的问题,我深表歉意,但看起来我仍然不确定 Rails 在制作额外页面时应该如何工作。
我有一个设计用户模型(和一个用户控制器),每个用户都有一个整数字段“account_type”- 0 代表管理员,1 代表经理,2 代表呼叫者。
我知道如何使用索引页来展示所有类型的用户。但是,如何制作一个根据我点击的内容显示结果的页面?例如,我在菜单中有 3 个按钮:
- 管理员
- 经理
- 来电者
当我点击管理员时,我应该只会看到管理员。当我点击经理时,我应该只会看到经理等。
这就是我对控制器的全部了解,现在确定如何更改它,但还不确定如何 link 视图中的新页面。
class UsersController < ApplicationController
def index
@users = Users.all
end
end
简单且 RESTful 的方法是为每种类型创建不同的路由:
resources :admins, only: [:index]
resources :managers, only: [:index]
resources :callers, only: [:index]
这会创建路由 /admins
、/managers
、/callers
,每个路由都去往一个单独的控制器:
class AdminsController
# GET /admins
def index
@users = User.admin
render 'users/index'
end
end
class ManagersController
# GET /managers
def index
@users = User.manager
render 'users/index'
end
end
class CallersController
# GET /callers
def index
@users = User.caller
render 'users/index'
end
end
要创建适用于每种类型用户的按钮,最简单、最容易访问的方法是使用良好的旧链接并将它们设置为看起来像按钮的样式。
<%= link_to 'Admins', admins_path %>
<%= link_to 'Managers', managers_path %>
<%= link_to 'Callers', callers_path %>
您还想设置 ActiveRecord::Enum 来处理您的整数列:
class User < ApplicationRecord
# ...
enum account_type: {
admins: 0,
managers: 1,
callers: 2
}
end
如果需要,下一步将是重构和减少重复。