Ruby on rails 我如何向“用户”显示;待决“;加入团队?
我想做的是显示“挂起”加入组的用户。我有3个模型:用户、成员和组。我已使用户能够请求加入组。当发出请求时,成员模型中有一个名为“state”的属性,我将其默认值设置为“pending”。组管理员单击“接受”后,用户的状态将更改为“活动”如何仅显示处于“挂起”状态的用户? 通过在组控制器中添加代码“@members=@Group.Users”,我可以显示请求加入组的所有用户(包括“待定”和“活动”)。当我只想显示“待定”用户时,我在模型组中创建了一个名为“待定成员”的方法。这不管用 目前,我收到一条错误消息:“ActionView::MissingTemplate in Groups#show”。错误消息还突出显示代码“”。[当我使用代码@members=@group.users时,网页会同时显示“待定”和“活动”用户]Ruby on rails 我如何向“用户”显示;待决“;加入团队?,ruby-on-rails,model-view-controller,associations,Ruby On Rails,Model View Controller,Associations,我想做的是显示“挂起”加入组的用户。我有3个模型:用户、成员和组。我已使用户能够请求加入组。当发出请求时,成员模型中有一个名为“state”的属性,我将其默认值设置为“pending”。组管理员单击“接受”后,用户的状态将更改为“活动”如何仅显示处于“挂起”状态的用户? 通过在组控制器中添加代码“@members=@Group.Users”,我可以显示请求加入组的所有用户(包括“待定”和“活动”)。当我只想显示“待定”用户时,我在模型组中创建了一个名为“待定成员”的方法。这不管用 目前,我收到一
以下是每个模型属性:
create_table "groups", force: :cascade do |t|
t.string "name"
end
create_table "memberships", force: :cascade do |t|
t.integer "user_id"
t.integer "group_id"
t.string "state", default: "pending"
end
create_table "users", force: :cascade do |t|
t.string "email"
t.string "first_name"
t.string "last_name"
end
class Membership < ActiveRecord::Base
belongs_to :user
belongs_to :group
end
class User < ActiveRecord::Base
has_many :memberships, dependent: :destroy
has_many :groups, through: :memberships
end
class Group < ActiveRecord::Base
has_many :memberships, dependent: :destroy
has_many :users, through: :memberships
end
def show
@group = Group.find(params[:id])
@members = @group.pending_members
end
def pending_members
Membership.where(state: "pending")
end
<div class="container">
<div class="row">
<%= render @members %>
</div>
</div>
以下是每个型号的代码:
create_table "groups", force: :cascade do |t|
t.string "name"
end
create_table "memberships", force: :cascade do |t|
t.integer "user_id"
t.integer "group_id"
t.string "state", default: "pending"
end
create_table "users", force: :cascade do |t|
t.string "email"
t.string "first_name"
t.string "last_name"
end
class Membership < ActiveRecord::Base
belongs_to :user
belongs_to :group
end
class User < ActiveRecord::Base
has_many :memberships, dependent: :destroy
has_many :groups, through: :memberships
end
class Group < ActiveRecord::Base
has_many :memberships, dependent: :destroy
has_many :users, through: :memberships
end
def show
@group = Group.find(params[:id])
@members = @group.pending_members
end
def pending_members
Membership.where(state: "pending")
end
<div class="container">
<div class="row">
<%= render @members %>
</div>
</div>
以下是组模型中的代码:
create_table "groups", force: :cascade do |t|
t.string "name"
end
create_table "memberships", force: :cascade do |t|
t.integer "user_id"
t.integer "group_id"
t.string "state", default: "pending"
end
create_table "users", force: :cascade do |t|
t.string "email"
t.string "first_name"
t.string "last_name"
end
class Membership < ActiveRecord::Base
belongs_to :user
belongs_to :group
end
class User < ActiveRecord::Base
has_many :memberships, dependent: :destroy
has_many :groups, through: :memberships
end
class Group < ActiveRecord::Base
has_many :memberships, dependent: :destroy
has_many :users, through: :memberships
end
def show
@group = Group.find(params[:id])
@members = @group.pending_members
end
def pending_members
Membership.where(state: "pending")
end
<div class="container">
<div class="row">
<%= render @members %>
</div>
</div>
以下是Groups/show.html.erb视图中的代码:
create_table "groups", force: :cascade do |t|
t.string "name"
end
create_table "memberships", force: :cascade do |t|
t.integer "user_id"
t.integer "group_id"
t.string "state", default: "pending"
end
create_table "users", force: :cascade do |t|
t.string "email"
t.string "first_name"
t.string "last_name"
end
class Membership < ActiveRecord::Base
belongs_to :user
belongs_to :group
end
class User < ActiveRecord::Base
has_many :memberships, dependent: :destroy
has_many :groups, through: :memberships
end
class Group < ActiveRecord::Base
has_many :memberships, dependent: :destroy
has_many :users, through: :memberships
end
def show
@group = Group.find(params[:id])
@members = @group.pending_members
end
def pending_members
Membership.where(state: "pending")
end
<div class="container">
<div class="row">
<%= render @members %>
</div>
</div>
如果您想显示处于挂起状态的用户,那么您的
pending_成员
方法应该返回一个用户集合。它返回一组成员资格
你可以这样写:
def pending_members
User.includes(:memberships).where("memberships.state" => "pending)
end
<div id="user-<%= member.id %>">
<p>name: <%= member.first_name %> <%= member.last_name %></p>
<p>email: <%= member.email %></p>
</div>
那么为了让你的观点发挥作用,你可以把这个放进去
<%= render partial: 'member', collection: @group.pending_members %>
您的_成员部分中有什么,它在哪个目录中?