我正在开发一个应用程序,其中一个控制器控制多个模型的创建操作。我有更多的代码,但我不确定此错误是特定于代码还是不需要我发布整个设置的通用修复(例如更改 HTTP 请求)。
我有一个"篮球"模型,belongs_to从活动控制器生成的"活动"。每个活动has_one篮球模型。
然后在篮球控制器中,我有这个。
def edit
@activity = Activity.find(params[:id])
@basketball = @activity.basketball
end
def update
@activity = Activity.find(params[:id])
@basketball = @activity.basketball
if @basketball.update_attributes(basketball_params)
flash[:notice] = "Activity has been updated."
redirect_to activities_path
else
flash[:notice] = "Activity has not been updated."
render 'edit'
end
结束
但是,当我单击更新按钮时,我的页面呈现一个空白页面,其中包含 url 中的所有参数。例:
http://0.0.0.0:8080/basketballs/10/edit?utf8=%E2%9C%93&_method=patch&authenticity_token=[token]&basketball
有谁知道如何解决这个问题?
您的视图中有 3 个嵌套表单。
以下是问题:app/views/strengthworkouts/_formatting.html.erb 第 65 行和 app/views/workouts/_strengthworkout.html.erb 第 5 行
删除这些<form>
标签,保留form_for
。
只使用了最外层的形式。而且由于它没有任何action
或method
或任何属性,因此提交它只会触发对当前路径的GET
,其中包含查询字符串中的参数。