Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 Rails控制器,从不同控制器呈现视图,保存表单输入和错误消息_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 4 Rails控制器,从不同控制器呈现视图,保存表单输入和错误消息

Ruby on rails 4 Rails控制器,从不同控制器呈现视图,保存表单输入和错误消息,ruby-on-rails-4,Ruby On Rails 4,两个控制器:用户和任务。 用户主页=用户/user\u id。 主页上的表单用于将数据输入到任务模型中。 此过程由任务控制器处理。 成功输入:重定向并从数据库加载任务,OK,全部正常。 输入不成功,只需刷新主页,我们就可以保留表单输入和专门(非flash)错误消息 我似乎无法让任务控制器交付原始页面。错误是缺少模板用户/1(如果我要在浏览器中访问,这是正确的语法) 我应该调用操作并传递参数吗?对这个初学者的任何帮助都将不胜感激 def create @task = current_use

两个控制器:用户和任务。 用户主页=用户/user\u id。 主页上的表单用于将数据输入到任务模型中。 此过程由任务控制器处理。 成功输入:重定向并从数据库加载任务,OK,全部正常。 输入不成功,只需刷新主页,我们就可以保留表单输入和专门(非flash)错误消息

我似乎无法让任务控制器交付原始页面。错误是缺少模板用户/1(如果我要在浏览器中访问,这是正确的语法)

我应该调用操作并传递参数吗?对这个初学者的任何帮助都将不胜感激

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。这也解决了我的一个问题。现在,错误消息呈现得很好。