我有一個使用Bootstrap選項卡的Rails應用程序。 每個選項卡顯示從部分渲染的dataTable。 dataTables使用文件中定義的ajax代碼: workorders3_datatable.rb和workorders4_datatable.rb。Rails如果在控制器索引中的語句
這是該指數代碼:
<div class="tab-pane" id="tab2">
<%= render :partial => "workorders/index7", locals: {workorders: @workorders, tab: 2} %>
</div>
<div class="tab-pane" id="tab3">
<%= render :partial => "workorders/index8", locals: {workorders: @workorders, tab: 3} %>
這是我想要做的工作控制器代碼:
def index
@workorders = Workorder.all
@tab = :tab
respond_to do |format|
format.html # index.html.erb
if @tab == 2
format.json { render json: Workorders3Datatable.new(view_context) }
else
format.json { render json: Workorders4Datatable.new(view_context) }
end
end
末
我敢肯定,if
聲明是錯的。
感謝您的幫助。
UPDATE1
(這是一種很難解釋)
但是,我需要的JSON來自於TAB2文件Workorders3Datatable
和Workorders4Datatable
爲TAB3。
那麼,我該如何編寫if
stmt來測試tab2與tab3?
UPDATE2
我改變了看法代碼,這一點 - 但它仍使用Workorders4Datatable
兩個標籤視圖。
<div class="tab-pane" id="tab2">
<%= render :partial => "workorders/index7", :locals => {:workorders => @workorders, :tab_id => 2} %>
</div>
<div class="tab-pane" id="tab3">
<%= render :partial => "workorders/index8", :locals => {:workorders => @workorders, :tab_id => 3} %>
<div>
而且控制器:
respond_to do |format|
format.html # index.html.erb
puts "PUTS +++++++++++++ tab_id:" + params[:tab_id].to_s
if params[:tab_id] == 2
format.json { render json: Workorders3Datatable.new(view_context) }
else
format.json { render json: Workorders4Datatable.new(view_context) }
end
end
的puts
語句顯示tab_id是零 控制器沒有得到PARAM
UPDATE3
我想的東西不同 - 在控制器中有單獨的動作
查看代碼:
<div class="tab-pane" id="tab2">
<%= render :partial => "workorders/index7", :action => :index2 %>
</div>
<div class="tab-pane" id="tab3">
<%= render :partial => "workorders/index8", :action => :index3 %>
</div>
控制器(我不得不離開指數或不會顯示)
def index
puts "PUTS +++++++++++ index"
respond_to do |format|
format.html # index.html.erb
format.json { render json: Workorders3Datatable.new(view_context) }
end
end
def index2
puts "PUTS +++++++++++ index2"
respond_to do |format|
format.html # index.html.erb
format.json { render json: Workorders3Datatable.new(view_context) }
end
end
def index3
puts "PUTS +++++++++++ index3"
respond_to do |format|
format.html # index.html.erb
format.json { render json: Workorders4Datatable.new(view_context) }
end
end
它使用index
所有的時間結束。
PS - 也嘗試
<%= render :partial => "workorders/index7", :action => "index2" %>
我不能不同意,+1 :) – apneadiving
感謝您的幫助。 '@ workorders3'或'@ workorders4'將會返回所有的工作訂單。我需要一個if stmt來知道用戶是否單擊了tab2或tab3。我可能甚至不需要'@ workorders3'和'@ workorders4'。 – Reddirt
我改變了我的問題以擺脫'@ workorders3'和'@ workorders4'。 – Reddirt