【问题标题】:Action Controller: Exception caught. ArgumentError in my index controller动作控制器:捕捉到异常。我的索引控制器中的 ArgumentError
【发布时间】:2019-02-09 21:38:48
【问题描述】:

我是 Rails 的新手,在我的应用程序中收到 ArgumentError,说明如下:提供的位置为零。无法构建 URI。

显示第 10 行引发的 /app/app/views/buzzs/_home.html.erb:

未提供位置。无法构建 URI。 提取的源代码(大约第 10 行):

    <%= link_to buzz, class: "buzz" do %>
      <%= image_tag(buzz.user_view_url) %>
      <div class="buzz-data">
        <h3 class="buzz-title is-size-5 is-uppercase"><%= buzz.title %></h3>
        <br />

我的控制器上的索引操作:

定义索引

@buzzs = Buzz.all.order('created_at DESC')

结束

当用户不上传图片或上传图片时发生一些奇怪的事情时,会出现此问题,我收到错误消息。非常感谢任何深入了解我的问题和解决方案。

【问题讨论】:

  • 您对 user_view_url 进行了验证吗?
  • 我不相信我会。我将如何或在哪里验证它?
  • 试试这样的&lt;%= image_tag(buzz.user_view_url) if buzz.user_view_url %&gt;
  • 嘿!有效!感谢你的回答。请您再解释一下好吗?

标签: ruby-on-rails


【解决方案1】:

您可以在对image_tag 的调用中添加if 修饰符。它看起来像这样:

<%= image_tag(buzz.user_view_url) if buzz.user_view_url %>

它的作用是在用户上传图片时显示 image_tag。如果用户不上传图片,则不会显示 image_tag。您可以在此处阅读有关 if 和 if 修饰符的更多信息:https://docs.ruby-lang.org/en/2.6.0/syntax/control_expressions_rdoc.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-11
    相关资源
    最近更新 更多