【发布时间】:2023-04-04 02:19:01
【问题描述】:
现在,我正在实际构建一个项目管理应用程序,但我有点卡在应该构建此表单的方式上。在添加项目时,我想选择将包含在项目中的客户。下面是一些有趣的代码:
项目模型 项目迁移 客户模型 客户迁移 Clients_Projects 迁移表
到目前为止,构建控制器/视图的最佳方法是什么,我有这个用于视图,但我不知道控制器应该采取什么措施 ->
【问题讨论】:
标签: ruby-on-rails ruby forms controller
现在,我正在实际构建一个项目管理应用程序,但我有点卡在应该构建此表单的方式上。在添加项目时,我想选择将包含在项目中的客户。下面是一些有趣的代码:
项目模型 项目迁移 客户模型 客户迁移 Clients_Projects 迁移表
到目前为止,构建控制器/视图的最佳方法是什么,我有这个用于视图,但我不知道控制器应该采取什么措施 ->
【问题讨论】:
标签: ruby-on-rails ruby forms controller
我会为此使用嵌套属性。查看 Ryan Bates 的 railscast http://railscasts.com/episodes/196-nested-model-form-part-1 和 http://railscasts.com/episodes/197-nested-model-form-part-2。
您可以使用此方法为项目添加和删除客户端。对于大量客户端而言,使用复选框列表来选择客户端可能会出现问题。
【讨论】:
在您的控制器中,您必须向.permit 指明 id 列表是一个数组:
def client_params
params[:client].permit(
:name,
:address,
:phone,
{:project_ids => []}
),
end
那么 Rails 魔法 会起作用。
【讨论】:
{} 不是必需的,至少在 rails 4 中 :project_ids => [] 有效