【问题标题】:How to fix the error TeamsController#load_users is missing a template for this request format and variant如何修复错误 TeamsController#load_users 缺少此请求格式和变体的模板
【发布时间】:2019-02-08 10:08:54
【问题描述】:

我正在开发一个 Rails 应用程序。在我必须弹出一个模态的用例中。问题是模态没有弹出。如果我使部分文件正常,那么模态显示为我不想要的正常页面。自从一个星期以来,我正在尝试这个小好消息,如果我将 _load_users.html.erb 作为 load_users.html.erb ,它至少会显示模态,但我希望部分文件作为模态弹出。

我使用了一个触发 Ajax 的链接

// 团队控制器

def load_users
  @user = User.all

  respond_to do |format|
    format.html
    format.js
  end
end

//index.html.erb

<%= link_to 'link', load_users_teams_path, remote: true  %>

<div id="modal-window" class="modal hide fade" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content"></div>
  </div>
</div>

//_load_users.html.erb

<div class="modal-header">
  <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
  <h3 id="myModalLabel">Modal header</h3>
</div>
<div class="modal-body">
  **here comes whatever you want to show!**
</div>
<div class="modal-footer">
  <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
  <button class="btn btn-primary">Save changes</button>
</div>

//load_users.js.erb

$("#modal-window").html("<%= escape_javascript( render 'load_users' ) %>");
$("#modal-window").modal() 

它应该在点击链接时显示一个弹出模式。

【问题讨论】:

  • 尝试将format: :js 作为选项添加到您的 load_users_teams_path 调用中,这应该会让 rails 寻找要加载的 js.erb 文件。您可能还需要在js.erb文件中将其更改为render partial: 'load_users',不确定...
  • 我照你说的做了,但我收到以下错误......安全警告:另一个站点上的嵌入式
  • 不确定是什么原因造成的。也许删除 escape_javascript 调用并将渲染留在那里?这是我唯一的想法,否则我会告诉你查找该错误
  • 实际上,您知道这可能是在更改预先存在的 DOM 节点上的 HTML。您可以尝试使用 append 之类的方法,它可能会有所帮助

标签: jquery ruby-on-rails ruby


【解决方案1】:

在您的原始设置中,DOM 中没有发生任何事情或浏览器控制台中没有错误吗?

<div id="modal-window" class="modal hide fade" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-dialog" role="document">
    <div class="modal-content"></div>
  </div>
</div>

当您单击远程链接时,在开发人员工具检查器中看到的对此有何更改?

可能只是当您替换 #model-window 的内容时,它仍然具有 .hide 类(我猜这是 display: none; 或类似的)。

【讨论】:

  • load_users 加载资源失败:服务器响应状态为 406(不可接受)这是我的浏览器日志
  • rails 日志中显示的控制器/动作/格式是什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-04
  • 2017-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多