Ruby on rails 4 Rails控制器,从不同控制器呈现视图,保存表单输入和错误消息
两个控制器:用户和任务。 用户主页=用户/user\u id。 主页上的表单用于将数据输入到任务模型中。 此过程由任务控制器处理。 成功输入:重定向并从数据库加载任务,OK,全部正常。 输入不成功,只需刷新主页,我们就可以保留表单输入和专门(非flash)错误消息 我似乎无法让任务控制器交付原始页面。错误是缺少模板用户/1(如果我要在浏览器中访问,这是正确的语法) 我应该调用操作并传递参数吗?对这个初学者的任何帮助都将不胜感激Ruby on rails 4 Rails控制器,从不同控制器呈现视图,保存表单输入和错误消息,ruby-on-rails-4,Ruby On Rails 4,两个控制器:用户和任务。 用户主页=用户/user\u id。 主页上的表单用于将数据输入到任务模型中。 此过程由任务控制器处理。 成功输入:重定向并从数据库加载任务,OK,全部正常。 输入不成功,只需刷新主页,我们就可以保留表单输入和专门(非flash)错误消息 我似乎无法让任务控制器交付原始页面。错误是缺少模板用户/1(如果我要在浏览器中访问,这是正确的语法) 我应该调用操作并传递参数吗?对这个初学者的任何帮助都将不胜感激 def create @task = current_use
def create
@task = current_user.tasks.build(task_params)
if @task.save
flash[:success] = "New task created!"
redirect_to user_url(current_user)
else
flash[:error] = "Task not saved! Please see guidance by form labels"
render "users/#{current_user.id}"
end
end
private
def task_params
params.require(:task).permit(:label, :address, :content)
end
end用户/1不是模板,而是路径。在这种情况下,users/show是模板 请注意,使用“渲染”的唯一原因是渲染当前控制器操作范围内的模板,而不是正常的模板。 i、 e.您可能需要设置@user etc,否则用户/显示模板将因缺少变量而感到不安
在这种情况下,将用户重定向到用户路径(id)并允许用户/show controller操作设置@user变量等可能更容易。users/1不是模板,而是路径。在这种情况下,users/show是模板 请注意,使用“渲染”的唯一原因是渲染当前控制器操作范围内的模板,而不是正常的模板。 i、 e.您可能需要设置@user etc,否则用户/显示模板将因缺少变量而感到不安
在这种情况下,只需将_重定向到用户路径(id)并允许用户/#显示控制器操作设置@user变量等,可能会更容易。谢谢Chris。我使用了“render users/show”和“render users#show”并将_重定向到用户路径,它们都重新发布了页面。我用flash消息解决了这个问题,但我希望用户不要去任何地方,这样我们就可以看到来自Active Record的表单输入和错误消息。快速回答(我避免给出快速回答)是将“render”users/#{current_user.id}”替换为“render”users/show”,这对我们很有帮助。谢谢@Chris。这也解决了我的一个问题。现在错误消息呈现得很好。谢谢Chris。我使用了“render users/show”和“render users#show”并将_重定向到用户路径,它们都重新发布了页面。我用flash消息解决了这个问题,但我希望用户不要去任何地方,这样我们就可以看到来自Active Record的表单输入和错误消息。快速回答(我避免给出快速回答)是将“render”users/#{current_user.id}”替换为“render”users/show”,这对我们很有帮助。谢谢@Chris。这也解决了我的一个问题。现在,错误消息呈现得很好。