【发布时间】:2016-04-11 06:38:18
【问题描述】:
在我的 Rails 4 应用程序中,我有一个 PagesController,具有 app/views/layouts/pages.html.erb 布局。
两个页面需要特定的布局:home 和 help。
要将特定布局应用于home,我执行了以下操作:
class PagesController < ApplicationController
def home
render :layout => 'homepage'
end
end
我有一个特定的主页布局:app/views/layouts/homepage.html.erb
这很好用。
然后,我尝试将这个过程复制到帮助页面:
class PagesController < ApplicationController
def home
render :layout => 'homepage'
end
def help
render :layout => 'helppage'
end
end
我有一个特定的帮助页面布局:app/views/layouts/helppage.html.erb
但是,帮助页面没有采用所需的布局。
我的代码有问题吗?
————
更新:根据 Adrian Mann 的要求,这是我完整的PagesController:
class PagesController < ApplicationController
before_action :authenticate_user!, :only => [:help]
def home
[...]
render :layout => 'homepage'
end
def features
end
def pricing
end
def about
end
def contact
end
def feedback
end
def press
end
def help
render :layout => 'helppage'
end
def privacy
end
def terms
end
def career
end
def help
end
def faq
end
def guides
end
def support
end
def investors
end
end
这是我的ApplicationController:
class ApplicationController < ActionController::Base
# include Pundit
protect_from_forgery with: :exception
before_action :configure_permitted_parameters, if: :devise_controller?
# after_action :verify_authorized, :except => :index
def after_sign_in_path_for(resource)
sign_in_url = new_user_session_url
if request.referer == sign_in_url
super
else
stored_location_for(resource) || request.referer || root_path
end
end
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:first_name, :last_name, :company_name, :email, :password, :password_confirmation, :time_zone, :company_type, :expert, :expert_approval, :category, :description, :portfolio, :price, :avatar, :first_reference, :second_reference, :third_reference, :location) }
devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:first_name, :last_name, :company_name, :email, :password, :current_password, :password_confirmation, :time_zone, :company_type, :expert, :expert_approval, :category, :description, :portfolio, :price, :avatar, :first_reference, :second_reference, :third_reference, :location) }
end
def user_for_paper_trail
user_signed_in? ? current_user.try(:id) : "Unknow User"
end
def facebook_copy_link(string)
require "uri"
array = URI.extract(string.to_s)
array.select { |item| item.include? ( "http" || "www") }.first
end
end
【问题讨论】:
-
您能否发布您的完整应用程序控制器文件和您的完整页面控制器?
-
当然。请参阅问题中的 UPDATE 部分。感谢您的帮助。
-
nit-pick:不要在方法中添加要求。 :)
标签: ruby-on-rails templates ruby-on-rails-4 layout