簡體   English   中英

單擊按鈕時渲染部分

[英]Render partial on button click

我在單擊按鈕時無法渲染粒子。 我收到錯誤

HelpController#FAQ_help 缺少此請求格式和變體的模板。 request.formats: ["text/html"] request.variant: []

main_page.html.erb

<%= link_to "FAQ", FAQ_help_path  %>

<div id="content">

</div>

help_controller.rb

def FAQ_help
  respond_to do |format|
    format.html {}
    format.js
  end
end

FAQ_help.js.erb

$('#content').html("<%= render :partial => 'FAQ_help' %>");

_FAQ_help.html.erb

<div>
  <h1> This is the FAQ </h1>
</div>

路由文件

get 'FAQ_help', to: 'help#FAQ_help'

這個怎么樣:

# main_page.html.erb
<%= link_to "FAQ", FAQ_help_path, remote: true %>

並且

# faq_help.js.erb
$('#content').html("<%= escape_javascript(render :partial => 'FAQ_help')%>")
#fixed syntax

干杯!

由於您已為此請求創建了一個方法,為了清楚起見,我將對其進行更多定義:

def FAQ_help
  respond_to do |format|
    format.html {}
    format.js {render: FAQ_help}
  end
end

如果你想保持你的控制器干凈,我會傳遞一個帶有鏈接的參數,並檢查嬰兒車是否存在,如果它是渲染常見問題部分:

查看:

<link_to "Your FAQ"  your_path, data: {method: :get, :remote => true, params: { faq: "#{current.user_name}" }.to_param }, :class =>"button" %>

控制器:

if params[:faq].present?
    respond_to do |format|
    format.html {}
    format.js {render: FAQ_help}
  end
else
  respond_to do |format|
    format.html {}
    format.js {} #your default view for this method 
  end
end

這很方便顯示 IE:根據請求顯示不同的內容

ie: parms =bob # displays bobs FAQ
ie: parms =ted # displays teds FAQ

此技術類似於您為創建搜索而實施的技術。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM