2016-05-29 68 views
0

所以我一直在用我的腦袋砸了幾個小時不知道該去哪裏。 我想在我的index.html.haml內呈現部分_show.html.haml。不過,儘管我在渲染時聲明瞭它們,但我仍然遇到了未加載的當地人的問題。Rails部分AJAX請求不會加載當地人,儘管他們分配了

這是我的控制器。

def show 
    @table = params["id"] 
    @bank = Bank.find(params["bank_id"]) 
    @table_contents = @bank.table_config.as_json.first[1][@table] 
    respond_to do |format| 
    format.js {render :partial => 'manage/table_configs/show', locals: { table: @table, table_contents: @table_contents}} 
    end 
end 

這是Index.html.haml

#all-tables 
    %h1 Table Configurations 
    %br/ 
    %table#table_configs_table.pretty 
    %tr 
     %th Table Name 
    %tbody 
     - @tables.each do |table| 
     %tr 
      %td= link_to table.titleize, manage_bank_table_config_path(@bank, table), remote: true 

#show-table 
    %h2 Show 

:javascript 
    $('#show-table').html('#{escape_javascript(render(partial: "manage/table_configs/show", :locals => {:table => @table, :table_contents => @table_contents, :bank => @bank}))}'); 

這是我的一部分,我試圖來呈現不斷返回該錯誤。 undefined method 'titleize' for nil:NilClass

_show.html.haml

%h1= table.titleize 
%br/ 
%table.table.table-striped.table-hover.pretty 
    %tr 
    %th Column Name 
    %th Column State 
    %tbody 
    - table_contents.each do |key, value| 
     %tr 
     %td=key.to_s.titleize 
     %td=value.values.first.to_s.titleize 
%br/ 
=link_to "Edit Table", edit_manage_bank_table_config_path(@bank, table), class: "btn btn-sm" 
=link_to "All Tables", manage_bank_table_configs_path(@bank), class: "btn btn-sm" 

搞清楚爲什麼發生這種情況,將不勝感激任何幫助。

謝謝!

編輯

我還要補充一點,這個工作正常沒有Ajax

+0

你確定你想要value.values.to_s而不只是value.to_s ...在顯示部分? – Anand

+0

'@ tables'不在任何地方聲明,所以它默認爲零。我看到'@ table'聲明瞭,而不是'@ tables' –

+0

'@ tables'在我的索引控制器中聲明瞭 –

回答

0

你應該編譯JS第一

<% compiled_template = escape_javascript(render(partial: "manage/table_configs/show", :locals => {:table => @table, :table_contents => @table_contents, :bank => @bank}))%>

外的模板然後添加使用jQuery編譯像這樣

$('#show-table').html("#{compiled_template}")

相關問題