gpt4 book ai didi

ruby-on-rails - 如何在没有 'create' 操作的情况下实现 'new' 操作

转载 作者:数据小太阳 更新时间:2023-10-29 08:31:52 26 4
gpt4 key购买 nike

我怎样才能最好地实现此功能:作为管理员,我可以为大厅分配驻地经理。

  • 我有一个带有管理员命名空间路由的用户模型 - 我打算有另一个命名空间路由来保存 RM 的功能-

  • 我有一个霍尔模型。

  • 由于上述模型之间存在多对多关系,因此我有一个仅包含 user_id 和 hall_id 列的管理连接模型。

我知道实现上述功能需要在管理表中创建一条新记录,但我不知道该怎么做。我认为使用表单 (management#new) 不会解决这个问题,因为管理员不应该知道 user_ids/hall_ids...

以下是我尝试做的,但我做不对

当管理员进入用户索引页面时,他/她应该会看到每个用户的 Hall Assignment 链接。此链接指向该特定用户的管理展示页面,该页面将显示分配给该用户的大厅列表以及未分配给该用户的所有其他剩余大厅。因此,单击“添加”按钮或大厅名称应将其添加到同一页面上该用户的指定大厅列表中。

管理#显示页面

<h2><%= @user.email %>'s assigned halls</h2>

<% @user.managements.each do |management| %>
<%= management.hall.name %>
<% end %>

<p> HALL LISTS </p>

<ul>
<% @halls.each do |hall| %>
<li><%= hall.name %> <%= button_to "Add" %> </li>
<% end %>
</ul>

这是我的管理 Controller

class Admin::ManagementsController < ApplicationController
def index
@managements = Management.all
end

def show
@user = User.find(params[:id])
@halls = Hall.all
end

def create
@management = Management.create(managements_params)

redirect_to admin_management_path
end

private

def managements_params
params.
require(:management).
permit(user_id: params[:user_id], hall_id: params[:hall_id])
end
end

这是我的路由文件的一部分:

 namespace :admin do
resources :users, only: [:index, :update]
resources :halls, only: [:index, :new, :create]
resources :managements, only: [:index, :new, :create, :show] do
resources :halls, only: [:index]
end
end

最佳答案

您的“添加”按钮只是一个迷你表单(大部分是隐藏字段)。您可以改为将其设为实际表单(提交按钮的文本为“添加”),并从页面上的项目中填写 id 值……它只是指向您通常会使用的相同路线指向您在 new 模板中找到的表单。

如果您需要更多详细信息,请向我们展示您编写的代码(而不是对其进行口头描述)。

编辑:

好的,所以你会像这样在页面上放置一个按钮

<ul>
<% @halls.each do |hall| %>
<li><%= hall.name %> <%= button_to "Add", managements_path(management: {user_id: @user.id, hall_id: hall.id}, method: :put ) %> </li>
<% end %>
</ul>

注意 managements_path - 您可能需要检查路由是否正确(根据 rake routes 中的内容检查它)。请注意,您要传入用户 ID 和大厅 ID,并且必须将方法设置为“放置”按钮。

关于ruby-on-rails - 如何在没有 'create' 操作的情况下实现 'new' 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25480006/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com