缺少参数或值为空:activity Rails 4
param is missing or the value is empty: activity Rails 4
当我尝试在我的应用程序中创建条目时,我得到
ActionController::ParameterMissing in TodosController#create
param is missing or the value is empty: activity
预期来源:
def todo_params
params.require(:activity).permit(:name, :due)
end
这是我的要求:
{"utf8"=>"✓",
"authenticity_token"=>"mR11T50dN8tm/q+S0fNd+mYYZBR6Xq4it4ujtEOmt/7RmA4TjzTKD//XmFU+UumpbmKcaj9DtG6noHOD2pwk2w==",
"todo"=>{"name"=>"Ezekiel",
"activity"=>"test....an 8th time"},
"commit"=>"Create Todo"}
我不确定为什么这不起作用,因为 activity 参数在请求中明确传递
这是控制器:
def create
@todo = Todo.create(todo_params)
end
def todo_params
params.require(:activity).permit(:name, :due)
end
最后是我的观点:
<div class="reveal" id="ezekielTask" data-reveal>
<%= simple_form_for @todo do |f| %>
<%= f.input :name, :as => :hidden, :input_html => {:value => "Ezekiel"} %>
<%= f.input :activity %>
<%= f.button :submit %>
<% end %>
</div>
我的 rails 应用程序的这一部分是待办事项列表,它显示正常,我可以通过控制台添加条目,这种方式行不通,我不知道为什么。它正在正确传递数据,只是不接受它。
您需要更改强参数方法以要求 todo
然后接受 :name
和 :activity
参数
def todo_params
params.require(:todo).permit(:name, :activity)
end
原因是
{"utf8"=>"✓",
"authenticity_token"=>"mR11T50dN8tm/q+S0fNd+mYYZBR6Xq4it4ujtEOmt/7RmA4TjzTKD//XmFU+UumpbmKcaj9DtG6noHOD2pwk2w==",
"todo"=>{"name"=>"Ezekiel",
"activity"=>"test....an 8th time"},
"commit"=>"Create Todo"}
如果您在参数中看到您在 todo
中收到 name
和 activity
在 require
参数中,我们通常使用模型的名称 (todo
),在 permit
中,我们使用该模型的属性 (:name, :activity
)
def todo_params
params.require(:todo).permit(:name, :activity)
end
控制器
def create
@todo = Todo.create(todo_params)
respond_to do |format|
if @todo.save
format.html { redirect_to location_path, notice: 'Todo was successfully created.' }
else
format.html { render :new }
}
end
end
end
参数
def todo_params
params.require(:todo).permit(:name, :activity)
end
当我尝试在我的应用程序中创建条目时,我得到
ActionController::ParameterMissing in TodosController#create
param is missing or the value is empty: activity
预期来源:
def todo_params
params.require(:activity).permit(:name, :due)
end
这是我的要求:
{"utf8"=>"✓",
"authenticity_token"=>"mR11T50dN8tm/q+S0fNd+mYYZBR6Xq4it4ujtEOmt/7RmA4TjzTKD//XmFU+UumpbmKcaj9DtG6noHOD2pwk2w==",
"todo"=>{"name"=>"Ezekiel",
"activity"=>"test....an 8th time"},
"commit"=>"Create Todo"}
我不确定为什么这不起作用,因为 activity 参数在请求中明确传递
这是控制器:
def create
@todo = Todo.create(todo_params)
end
def todo_params
params.require(:activity).permit(:name, :due)
end
最后是我的观点:
<div class="reveal" id="ezekielTask" data-reveal>
<%= simple_form_for @todo do |f| %>
<%= f.input :name, :as => :hidden, :input_html => {:value => "Ezekiel"} %>
<%= f.input :activity %>
<%= f.button :submit %>
<% end %>
</div>
我的 rails 应用程序的这一部分是待办事项列表,它显示正常,我可以通过控制台添加条目,这种方式行不通,我不知道为什么。它正在正确传递数据,只是不接受它。
您需要更改强参数方法以要求 todo
然后接受 :name
和 :activity
参数
def todo_params
params.require(:todo).permit(:name, :activity)
end
原因是
{"utf8"=>"✓",
"authenticity_token"=>"mR11T50dN8tm/q+S0fNd+mYYZBR6Xq4it4ujtEOmt/7RmA4TjzTKD//XmFU+UumpbmKcaj9DtG6noHOD2pwk2w==",
"todo"=>{"name"=>"Ezekiel",
"activity"=>"test....an 8th time"},
"commit"=>"Create Todo"}
如果您在参数中看到您在 todo
name
和 activity
在 require
参数中,我们通常使用模型的名称 (todo
),在 permit
中,我们使用该模型的属性 (:name, :activity
)
def todo_params
params.require(:todo).permit(:name, :activity)
end
控制器
def create
@todo = Todo.create(todo_params)
respond_to do |format|
if @todo.save
format.html { redirect_to location_path, notice: 'Todo was successfully created.' }
else
format.html { render :new }
}
end
end
end
参数
def todo_params
params.require(:todo).permit(:name, :activity)
end