我在Rails应用程序中使用Ajax / jQuery渲染局部片段时遇到麻烦,我想知道我要去哪里出错了。
Rails 5.2.0
在我的“仪表盘”视图上,我试图根据单击的特定侧边栏链接项来渲染部分。
在我的views/users/my_dashboard.html.erb
中:
<li class="sidenav__list-item">
<%= link_to "Transaction History", transaction_path, :remote: true %>
</li>
我的部分_test.html.erb
:
<div>
<p>It works if this shows</p>
</div>
以及我的views/users/my_dashboard.js.erb
:
$('#render-test').replaceWith("<%= j render 'users/partials_dashboard/test' %>");
在我的views/users/my_dashboard.html.erb
中,当单击Transaction History
链接时,我需要它来呈现其相应的部分:
// replace this div, with the rendered partial
<div id="render-test">
</div>
控制器users_controller.rb
:
def my_dashboard
respond_to do |format|
format.html
format.js
end
end
我想念什么?
您无法使用Javascript生成红宝石,不会解释红宝石。如果您确实需要动态的东西,那么应该考虑创建一个API路由,然后使用Jquery调用此API
尝试
$('#render-test').replaceWith("<%= j render partial: 'users/partials_dashboard/test' %>");