First argument in form cannot contain nil or be empty <%= form_for @manager, url: url, method: method do |form| %>应该怎么解决?manager使用devise创建的。但是现在想和其他model一样单独创建,增删改查,我创建了post insert_manager
时间: 2024-02-23 18:58:25 浏览: 110
这个错误可能是因为 `@manager` 变量为空。你可以检查一下 `@manager` 是否被正确地初始化或者是否被正确地传递到了视图中。
如果你想像其他的 model 一样单独创建、增删改查 `Manager`,你需要手动创建相应的控制器、视图和路由。你可以参考以下步骤:
1. 创建一个 `ManagersController` 控制器,用于处理 `Manager` 相关的请求,例如创建、更新和删除 `Manager`。
2. 在控制器中定义 `insert_manager` 动作,用于处理创建 `Manager` 的请求。
3. 在 `insert_manager` 动作中创建一个新的 `Manager` 对象,并将表单提交的参数赋值给相应的属性。
4. 保存 `Manager` 对象,并根据保存结果返回相应的操作结果。
5. 在 `config/routes.rb` 文件中定义 `Manager` 相关的路由,例如:
```ruby
resources :managers, only: [:new, :create, :edit, :update, :destroy]
post '/insert_manager', to: 'managers#insert_manager'
```
6. 创建相应的视图文件,例如 `new.html.erb`、`edit.html.erb` 等,用于显示表单和处理用户输入。
注意:如果你使用了 `devise` 来实现身份验证,那么你需要在 `ManagersController` 中添加相应的 `before_action`,以确保只有经过身份验证的用户才能访问 `Manager` 相关的操作。
阅读全文