rails中的复杂表单(has_and_belongs_to_many)

时间:2010-06-17 18:34:38

标签: ruby-on-rails ruby forms controller

现在,我正处于实际构建项目管理应用程序的中间位置,而且我很喜欢我应该构建这个表单的方式。在添加项目时,我想选择将包含在项目中的客户端。以下是一些感兴趣的代码:

项目模型 项目迁移 客户模型 客户迁移 Clients_Projects迁移表

http://pastebin.com/280MjR8i

到目前为止构建Controller / View的最佳方法是什么,我有这个视图,但我不知道,应该对控制器采取什么 - >

http://pastebin.com/dHa8nAQZ

2 个答案:

答案 0 :(得分:6)

我会使用嵌套属性。查看Ryan Bates的railscast http://railscasts.com/episodes/196-nested-model-form-part-1http://railscasts.com/episodes/197-nested-model-form-part-2

您可以使用此方法为项目添加和删除客户端。使用复选框列表选择客户端可能会对大量客户端造成问题。

答案 1 :(得分:2)

在你的控制器中,你必须向.permit表明id列表是一个数组:

def client_params
  params[:client].permit(
    :name,
    :address,
    :phone,
    {:project_ids => []}
  ),
end

然后 Rails魔术将起作用。

  

来源:https://coderwall.com/p/_1oejq