我有三個控制器都從ApplicationController
繼承。 孩子控制器是:覆蓋子控制器中父控制器的實例變量
HomeController
index
家庭控制器只有一個方法,index
,它只是呈現形式。
TemplatesController
templates
save_page_name
preview
的TemplatesController
有三種方法。 templates
列出所有模板並preview
打開所選模板的預覽。 save_page_name
是從home#index
提交的表單的終點。
DesignsController
home
about
template#preview
呈現與含有design#home
一個iframe
的圖。
DesignsController
中的每個方法都需要從表單中設置的值來獲取數據。 (數據正在從API中提取。)
現在。我想爲DesignController
創建一個全局可訪問的變量。即我想讓價值來自全球的形式。所以我把一些代碼在父控制器
這裏是我的代碼:
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
before_action :page_name
def page_name
@page_name = ''
end
end
,並打算在重寫它template#save_page_name
:
def save_page_name
@page_name = params[:page_name]
test_page_name = PageName.new
test_page_name.name = @page_name
if test_page_name.save
redirect_to(controller: 'template', action: 'templates')
end
end
這是形式
<%= form_tag({controller: 'application', action: "save_page_name"}, class: "nifty_form") do%>
<%= text_field_tag :page_name %>
這是模板控制器
class TemplateController < ApplicationController
def templates
end
def preview
end
end
設計控制器
class DesignController < ApplicationController
def home
@info = @page_name //should be global var
render :template => "design/"+params[:template]+"/home"
end
end
你的問題是什麼? – spickermann
@spickermann,首先感謝我的英語我試圖從子類中覆蓋父類的實例變量。 – Raaz
你有什麼問題?有錯誤嗎? – spickermann