Rails中的ArgumentError

时间:2012-11-02 13:00:50

标签: ruby-on-rails controller arguments argument-error

我想连接两个实体(项目和问题),Rails说一些错误信息,但我不知道,我该怎么做。你能帮帮我解决吗?非常感谢。

Error screen

2 个答案:

答案 0 :(得分:1)

不确定您要做什么,但看起来您有一个嵌套资源,因此想要将数组传递给form_for,但实际上您传递了两个单独的对象。变化:

<%= form_for(@project, @project.issues.build) do |f| %>

为:

<%= form_for([@project, @project.issues.build]) do |f| %>

通过此更改,您将为form_for传递一个数组,而不是两个参数。

答案 1 :(得分:0)

我认为你已经使用了这样的嵌套资源:

resources projects do
  resources issues
end

如果您使用过,请尝试制作如下表单:

<%= form_for([@project, @issue]) do |f| %>

并在你的IssueController中:

def new
  @project = Project.new
  @issue = @project.issues.build(params[:issue])
end

def create
  @project = Project.find(params[:project_id]
  @issue = @project.issues.create(params[:issue]
end

再次跑去看看有什么事情发生。希望这有帮助。