ruby-on-rails - Rails 中带有 respond_to 的 Controller 的不同布局

标签 ruby-on-rails ruby-on-rails-3 ruby-on-rails-4 ruby-on-rails-3.2 erb

我知道我可以调用render使用 layout: 'my_layout' 的方法在 Controller 方法中更改布局。但是,我的一些 Controller 方法具有以下内容,因此我也可以轻松呈现 JSON:

respond_to do |format|
  format.html
  format.json { render json: @cars }
end

如何更改 format.html 的布局?我应该更换format.htmlrender layout: 'my_layout' ?有没有我可以传递给 format.html 的选项? ?

最佳答案

默认情况下,Rails 将使用 app/views/layouts/application.html.erb作为布局。如果要使用其他布局,请创建 app/views/layouts/my-new-layout.html.erb然后

在您的 Controller 方法中:

respond_to do |format|
  format.html { render layout: 'my-new-layout' }
  format.json { render json: @cars }
end

这是 Rails 指南中的相关部分:Layouts and Rendering: Options for Render

关于ruby-on-rails - Rails 中带有 respond_to 的 Controller 的不同布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21715810/

相关文章:

ruby-on-rails - Ruby on Rails 4 - 使用什么身份验证 gem?

mysql - PostgreSQL (Heroku) 中的时间/日期时间比较

heroku - Heroku 上的 Rails 4.0,NoMethodError(#<User 的未定义方法 `password_digest='

ruby-on-rails - rails 4 : List of available datatypes

python - Heroku 未被识别为内部或外部命令 (Windows)

ruby-on-rails - 如何 : Ruby on Rails to build a basic site

ruby-on-rails - 模型尝试在生产中使用与开发中不同的表名

ruby-on-rails-3 - 无法使用 Selenium、Capybara-webkit 进行测试; RackTest 工作正常

ruby-on-rails-4 - 开发和生产配置各种环境的痛苦(Rails 4应用)

ruby-on-rails - Rails 实际上在哪里为 _session_id 编写 Set-Cookie header ?