尝试创建任务时出现参数错误



>我有一个表格,用于使用管理员帐户创建新任务。每个任务都链接到一个帐户。当我访问 admin/mission/new 时,我收到错误"ArgumentError in Admin::Mission#new"。谁能指出我做错了什么?

当我检查 rails 控制台时,确实会显示任务 ID 和名称,但我想我缺少任务的管理员。

这是我的控制器

class Admin::MissionsController < Admin::ApplicationController
  def index
    @missions = missions
  end
  def new
    @mission = current_account.missions.new(params[:mission])
    @mission.save
  end
  def create
    render plain: params[:mission].inspect
  end

  def edit
    @mission = missions.find(params[:id])
  end


  private
  def missions 
    @missions ||= current_account.missions
  end
end

这是我的表格

<%= form_with [:admin, @mission] do |f| %>
  <div>
    <label>Name</label>
    <%= f.text_field :name %>
  </div>
  <div>
  </div>
  <div>
    <%= f.submit %>
  </div>
<% end %>

我希望网址管理员/任务/新将我带到表单,但是我得到参数错误错误的参数数量(给定 1,预期为 0(

新操作中还没有参数,因为视图(必须收集参数的表单所在的位置(在控制器代码之后呈现。应在创建操作中创建对象:

def create
  current_account.missions.create(params[:mission])
end

新行动应该只是:

def new
  @mission = current_account.missions.new
end

检查 Rails 指南的将表单绑定到对象部分。

表单代码似乎也是错误的,因为form_with [:admin, @mission] do |f|不是有效的语法。它应该是:

<%= form_with model: [:admin, @mission] do |form| %>

有关更多详细信息,请查看form_with文档。

理想情况下,新方法仅用于创建新实例,而创建方法仅用于保存记录。更改为安娜玛丽亚的建议应该可以解决您的问题。谢谢。

相关内容

  • 没有找到相关文章

最新更新