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

Ruby on rails 如何在rails应用程序之外创建页面,ruby-on-rails,post,Ruby On Rails,Post,我希望页面不是通过rails呈现的,这样它们就不会在我创建的每个页面上都有默认的页眉和页脚 因此,我有一个网站,您可以在其中发布内容,但当您转到根目录(www.localhost:3000/)时,我希望您必须使用帐户登录或创建帐户。这些页面有一个完全独立的页眉和页脚,它们几乎应该是一个不同的网站,因为它们实际上与真实的网站没有任何联系,只是在您访问之前通过它们 我认为这些页面需要放在公共文件夹中,但我不是很确定。您不能在公共目录中编程页面(即,您提供.html文件,没有ruby)。从我对你的要求

我希望页面不是通过rails呈现的,这样它们就不会在我创建的每个页面上都有默认的页眉和页脚

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


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

您不能在公共目录中编程页面(即,您提供.html文件,没有ruby)。从我对你的要求的理解来看,它肯定可以通过视图来完成。您只需在views/layouts目录中设置一个不同的布局文件,并在控制器中指向该文件,如下所示:

class MyController < ApplicationController

    layout "differentLayout"

    ...

end
class MyController

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

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

使用Rails,您可以创建一个文件,如
app/views/layouts/application.html.erb
,该文件使用应用程序的页眉和页脚。但是,Rails不会强迫您始终使用此布局,除非您愿意

例如,考虑创建另一种布局,如“代码>应用程序/视图/布局/ NothLogLogEdIn .html。现在,您可以在处理登录和注册的控制器中使用此新布局:

class LoginController < ApplicationController
  layout 'not_logged_in'

  # def create, show, etc.
end

class SignUpController < ApplicationController
  layout 'not_logged_in'

  # def create, show, etc.
end

有没有办法只显示控制器特定页面的布局?我尝试了“不同”的布局:只有=>“特定”,“页面”@Planetpluto是的,这是可能的。但是,您必须使用
render:layout=>“not\u logged\u in”
在单个操作上设置它。
class LayoutLessController < ApplicationController
  layout nil
end