我正在使用Ruby on Rails 4和Bootstrap模式。
我有一个链接到我的网站上的控制器操作,该操作以模态打开。我这样做使用ajax将一个帮助文件放入div。控制器动作从模型中获取随机产品。我希望我的模式中有一个按钮来重新加载'模态。换句话说,关闭模态并重新打开它再次调用控制器操作,这样我们就有了新产品。
我还想知道如何在模式中创建一个按钮,该按钮链接到不同的控制器动作(更改数据库中的属性),然后重新加载模态。
example_controller.rb
def onsale
@item= Products.(code to get random product)
respond_to do |format|
format.js
end
end
_header.html.erb 这里我显示了打开模态的链接。
<div class="collapse navbar-collapse" id="navbar-collapse">
<% if user_signed_in? %>
<ul class="nav navbar-nav navbar-left">
<li><%= link_to "Sale Items", onsale_path, :remote => true %></li>
</ul>
<% end %>
</div>
我将此代码<div id="onsale-modal"></div>
放在application.html.erb
onsale.js.erb
$("#onsale-modal").html('<%= escape_javascript(render 'onsale') %>');
$('#myModal').modal('show')
_onsale.html.erb
<div class="modal" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="myModalLabel">Modal title</h4>
</div>
<div class="modal-body">
<%= image_tag @item.picture.large.url %>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary" id="reload">Reload</button>
</div>
</div>
</div>
</div>
编辑:
我添加了此代码
$('#reload').on('click', function () {
$('#myModal').modal('hide');
$.ajax("/onsale");
});
到onsale.js.erb,似乎工作正常。这样做有什么不对吗?