【问题标题】:Index View Error wrong amount of arguments索引视图错误参数数量错误
【发布时间】:2020-03-19 23:41:44
【问题描述】:

我收到一个参数错误,我不知道为什么。我对使用 Rails 和整体编程还是很陌生。我目前正在处理我的索引页面,只是想显示描述。下面是视图和控制器。我不确定为什么 t.description 被期望有不止一个论点。这是因为强大的参数吗?

查看:

<h1> All Tea Blends </h1>

<% @teas.each do |t| %>
  <h2><%= link_to t.flavor, tea_path(t.id)%> - <%= t.brand.name %></h2>
  <% link_to "Write a review", new_tea_review_path%>
<% end %>

<div>
    <p><%= t.description %></p>
</div>

控制器:

class TeasController < ApplicationController
  def index
    @teas = Tea.order_by_rating.includes(:brand)
  end
end

【问题讨论】:

  • 如果您指的是 rails 错误图片,我将其删除,它表示我还没有发布嵌入图像的能力。但我已经进一步定义了我的问题来代替它。
  • 我已编辑您的帖子以将其缩小为minimal reproducible example。请花点时间阅读那篇文章以了解原因。由于您收到的错误来自控制器的 index 方法,这是该控制器唯一相关的部分。
  • 谢谢你,我也在阅读示例以遵循范式前进,因为根据该示例传达我的问题要容易得多。

标签: ruby-on-rails ruby model-view-controller


【解决方案1】:

t.description 在循环之外。不知道为什么你会得到错误数量的参数(虽然 t 也用于翻译)。只需将其移入循环...

<% @teas.each do |t| %>
  <h2><%= link_to t.flavor, tea_path(t.id) %> - <%= t.brand.name %></h2>
  <% link_to "Write a review", new_tea_review_path %>

  <div>
    <p><%= t.description %></p>
  </div>
<% end %>

我还建议将循环变量更改为 tea 而不是 t。它更具描述性并避免了冲突。

【讨论】:

  • 另外,我假设您需要将tea 传递给new_tea_review_path
猜你喜欢
  • 1970-01-01
  • 2017-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多