如何在rails应用程序之外创建页面

时间:2011-07-08 02:47:12

标签: ruby-on-rails post

这更像是一个令人困惑的问题,对我来说太过分了。 我想要做的是让页面不通过rails呈现,这样它们就没有我所创建的每个页面的默认页眉和页脚。

所以我有一个网站,您可以发布内容,但是当您转到根目录(www.localhost:3000 /)时,我希望您必须使用帐户登录或创建帐户。这些页面有一个完全独立的页眉和页脚,它们几乎应该是一个不同的网站,因为它们实际上与真实网站没有任何联系,除了在你访问它们之前通过它们。

我认为这些页面需要在公共文件夹中,但我不确定。

由于

2 个答案:

答案 0 :(得分:2)

您可以按照建议将静态html文件放在public/中,但更好的方法是使用Rails,只需使用不同的布局。

使用Rails,您可以创建一个文件,例如app/views/layouts/application.html.erb,它使用您应用的页眉和页脚。但是,除非您愿意,否则Rails不会强制您一直使用此布局。

例如,考虑创建另一个布局,如app/views/layouts/not_logged_in.html.erb。现在,您可以在处理登录和注册的控制器中使用这种新布局:

class LoginController < ApplicationController
  layout 'not_logged_in'

  # def create, show, etc.
end

class SignUpController < ApplicationController
  layout 'not_logged_in'

  # def create, show, etc.
end

这两个控制器现在将使用not_logged_in.html.erb布局,而所有其他控制器将使用application.html.erb

也可以不为控制器使用布局:

class LayoutLessController < ApplicationController
  layout nil
end

答案 1 :(得分:0)

您无法在公共目录中编写页面(即您提供.html文件,没有ruby)。根据我对您的请求的理解,它绝对可以通过视图完成。您需要做的就是在views / layouts目录中设置一个不同的布局文件,并在控制器中指向该文件,如下所示:

class MyController < ApplicationController

    layout "differentLayout"

    ...

end

在differentLayout.html.erb中,您需要不同的页眉和页脚部分。