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

时间:2015-08-14 09:43:39

标签: ruby-on-rails-4

两个控制器:用户和任务。 Users = Users / user_id的主页面。 用于将数据输入任务模型的主页面上的表单。 此过程由任务控制器处理。 成功输入:从数据库重定向和加载任务,确定,一切正常。 输入不成功,只需要刷新主页,以便我们保持表单输入和专用(非闪存)错误消息

我似乎无法让Tasks Controller传递原始页面。错误是缺少模板用户/ 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

1 个答案:

答案 0 :(得分:0)

users / 1不是模板,它是一条路径。在这种情况下,users / show是模板。

请注意,使用render的唯一原因是在当前控制器操作的范围内呈现模板而不是正常模板。 即你可能需要设置@user等,否则用户/节目模板会对缺少的变量感到不安。

在这种情况下,重定向到user_path(id)并允许users /#show controller action设置@user变量等可能更容易。