这更像是一个令人困惑的问题,对我来说太过分了。 我想要做的是让页面不通过rails呈现,这样它们就没有我所创建的每个页面的默认页眉和页脚。
所以我有一个网站,您可以发布内容,但是当您转到根目录(www.localhost:3000 /)时,我希望您必须使用帐户登录或创建帐户。这些页面有一个完全独立的页眉和页脚,它们几乎应该是一个不同的网站,因为它们实际上与真实网站没有任何联系,除了在你访问它们之前通过它们。
我认为这些页面需要在公共文件夹中,但我不确定。
由于
答案 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中,您需要不同的页眉和页脚部分。