无法使用适当的控制器操作将用户分配给患者

时间:2013-08-23 03:34:39

标签: ruby-on-rails

我仍然对rails很新,所以请原谅我,如果这真的很容易。

我正在开发一个允许用户创建并拥有许多客户端的演示CRM。但是,我也希望同一个用户能够指定其他用户在该客户端上工作。添加后,任何用户都可以将其他用户添加到客户端。我很难确定适当的控制器操作是什么。

我目前有has_many通过:关系如下:

class User < ActiveRecord::Base
  has_many :cases
  has_many :clients, through: :cases
end

class Client < ActiveRecord::Base
  has_many :cases
  has_many :users, through: :cases
end

class Case < ActiveRecord::Base
  belongs_to :user
  belongs_to :client
end

目前,我想要它,以便当您看到客户端页面(show.html.erb)时,可以将人员添加到@ client.users。

到目前为止,我有这个:

class ClientsController < ApplicationController

  def show
    @client = Client.find(params[:id])
    @users = User.all
  end

  def add_user_to
    @client = Client.find(params[:id])
    @selected_user = (params[:user_id])
    @client.users << @selected_user
  end
end

我正在为add_user_to_client_path

使用post方法

我用来提交的表单在show.html.erb中,如下所示:

<%= form_tag(add_user_to_client_path, method: :post) do %>
  <%= select_tag options_from_collection_for_select(User.all, "id", "first_name") %>
  <%= submit_tag "Add Client Member", class: "btn btn-large btn-primary" %>
<% end %>

有人能指出我能做什么的正确方向吗?我已经被困在这几天了。

1 个答案:

答案 0 :(得分:1)

您还需要找到用户,更改此行:

@selected_user = (params[:user_id])

@selected_user = User.find(params[:user_id])

<强>更新

您需要为select_tag

命名
<%= select_tag 'user_id', options_from_collection_for_select(User.all, "id", "first_name") %>