【问题标题】:how to redirect_to a custom html file如何重定向到自定义 html 文件
【发布时间】:2012-01-04 21:50:21
【问题描述】:

我有一个希望用户按下的链接,它将转到缺勤对象内的自定义视图 (new.worker.html.erb) 我该怎么做?

我目前在我的控制器中有一个 link_to 方法,称为 render,它检查用户的 session 中的 staff_type 来决定用户应该被重定向到哪里

编辑:正如评论者所指出的,答案是在你的link_to中调用相关的控制器到你的视图,然后像这样检查控制器内的正确渲染:

   if session[:user].staff_type == 3
        render "new_worker"

指向相关视图中的 new_worker 视图

【问题讨论】:

    标签: ruby-on-rails http-redirect


    【解决方案1】:

    好的,所以,不同的员工是不同的员工类型,对吧?工人就是其中之一?

    我可能会在你的人员控制器中显示——我假设你想在其中呈现不同的模板,当你查看具有特定人员类型的特定人时——是找到Staff Member,然后查看他们的 :staff_type 属性,并执行 if 或 case 以呈现相应的部分。

    def show
      @staff = Staff.find(params[:id])
    
      case @staff.staff_type
      when "worker"
        render :action => "show", :layout => "worker" 
      else
         #other options
      end
    end
    

    上面呈现的是 show 动作(传递这些变量),但使用了一个名为 worker 的自定义布局。

    或者,我建议使用相同的骨架,然后为每个不同的五线谱类型渲染不同的局部,而不是上面的渲染:

    render :partial => "worker", :object => @staff
    

    在这种情况下,视图可能会被称为_worker.rhtml

    在此处查看信息:http://rails.rubyonrails.org/classes/ActionController/Base.html#M000464

    您可以在任何控制器操作中使用上述内容,真的。但是您需要在控制器中执行此操作,或者重新组织您的资源。

    【讨论】:

      【解决方案2】:

      一点都不清楚,请给我们更多信息,什么是缺席,员工类型,工人?你有所有这些东西的路由、资源和控制器吗,它们是通过关系联系起来的吗?

      基本答案是:使用 rails,为了呈现模板,您需要一个控制器和一个访问控制器的路由。然后一个快速的redirect_to new_worker_path 应该可以工作

      编辑: 路由指向渲染视图(或其他 http 响应,例如 redirect_to)的操作。

      Rails(我猜你的是 2.3.11),是一个面向资源的 REST 框架。恕我直言,您应该保留它,并重定向到 new_absence_path,如果您想为 staff_type 使用不同的模板,您可以在链接 :type=>'worker' 中添加一个参数,并在您的控制器中使用它来呈现特定模板。

      不是最佳实践方式,是创建路线和动作。 对于轨道 2.3.11

      map.resources :staff, :member => {:new_worker => :get}

      然后在您的人员控制器中定义:

      def new_worker
        ...
        render 'new.worker'
      end
      

      【讨论】:

      • absences 是生成的脚手架,人员类型是我的另一个脚手架的属性,称为人员,它们链接在一起(缺勤和人员),工人是我要为特定人员类型呈现的视图在我的 routes.rb 中使用 map.resources :staffs 和 map.resources :absences 我将如何添加新路线以指向特定视图?
      • 好吧,让我们尝试按照我的正确方式进行操作: "absences", :action=>"show", :type=>'worker ' %> 控制器端如何检测类型工作者属性并使用它将用户发送到正确的视图?
      • 查看Rails设置的params变量,它嵌入了关于请求的信息。
      猜你喜欢
      • 2012-01-24
      • 2016-08-20
      • 1970-01-01
      • 2015-10-13
      • 1970-01-01
      • 1970-01-01
      • 2015-10-10
      • 2014-12-07
      • 1970-01-01
      相关资源
      最近更新 更多