【问题标题】:ActionController::UnknownFormat in Controller ( #index)控制器中的 ActionController::UnknownFormat (#index)
【发布时间】:2020-06-16 16:41:06
【问题描述】:

我有一个link_to 打电话给我的#index。在这个方法中有一个respond_to 用于format.js,所以我可以启动一些Ajax。事情是,当我查看控制台时,由于"ActionController::UnknownFormat" 而出现错误 500

我已经从旧帖子中测试了不同的解决方案,但我无法弄清楚我缺少什么。

控制器:

def index
 respond_to do |format|
  format.js { render partial: 'private/messages/load_more_messages' }
 end
end

查看:

<%= link_to "Load messages", private_messages_path(:conversation_id => conversation.id), remote: true %>

有人对此有任何想法吗?它应该是一个教科书包,但我一直用这个撞到一堵砖墙上。

【问题讨论】:

    标签: ruby-on-rails ajax format link-to


    【解决方案1】:

    如果您正在加载 HTML 部分,请尝试如下:

    def index
     render partial: 'private/messages/load_more_messages'
    end
    

    虽然我建议创建一个特定的端点来获取您传递路由的部分,因为这可能是您在项目中经常做的事情。

    类似的东西

      def render_partial(partial_route)
        render partial: partial_route
      end
    

    【讨论】:

    • 嗯,既然想法是使用 Ajax 请求,我应该保留“respond_to”不是吗?我的意思是,将我的“link_to”设置为“remote:true”有什么意义,也就是说,为了我的帖子的目的,我删除了在 r​​esponse_to 之前的变量赋值
    • 你的第二点非常简洁,这肯定会让我的代码更赏心悦目。感谢您的提示!
    • @Narf 如果您尝试获取部分 VIA ajax,您只需要从我上面的代码 sn-p 获取响应并将其附加到 DOM。
    • 不确定它应该如何解决问题,尤其是知道我的部分是“js.erb”。我确实尝试过,但我得到了相同的结果。
    • @Narf 抱歉,我以为你试图渲染一个包含 JavaScript 的 html.erb
    【解决方案2】:

    好吧,在四处测试了各种想法之后,我回到了最初的想法,并且效果很好。我不知道第一次出了什么问题,但现在它是完美的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-14
      • 1970-01-01
      • 1970-01-01
      • 2014-05-21
      • 1970-01-01
      相关资源
      最近更新 更多