参数数量错误(2 为 1),Rails 中的 UsersController
wrong number of arguments (2 for 1), UsersController in Rails
我正在努力学习 Michael Hartl's Ruby on Rails Tutorial,虽然我已经能够自己解决一些错误,但第 9 章中的这个错误让我陷入了困境。
我的views/users/index.html.erb
:
<% provide(:title, 'All users') %>
<h1>All users</h1>
<ul class="users">
<% @users.each do |user| %> # Line flagged with error
<li>
<%= gravatar_for user, size: 50 %>
<%= link_to user.name, user %>
</li>
<% end %>
</ul>
我的用户助手:
module UsersHelper
def gravatar_for(user, options = { size: 50 })
gravatar_id = Digest::MD5::hexdigest(user.email.downcase)
gravatar_url = "https://secure.gravatar.com/avatar/#{gravatar_id}"
image_tag(gravatar_url, alt: user.name, class: "gravatar")
end
end
该错误还标记了我的文件中不存在的另一行代码;我猜它来自 Ruby 到 HTML 的转换?
delegate :to_xml, :to_yaml, :length, :collect, :map, :each, :all?, :include?, :to_ary, :join, to: :to_a
我为此绞尽脑汁将近两个小时没有任何进展。我所知道的是,当我用简单文本替换索引页时,这些错误就会消失。这是Gravatar的问题吗?我真的不知道,希望得到任何帮助。
好的,您将许多参数传递给 gravatar_for
方法。
重新定义如下,你可以像你一样使用它:
def gravatar_for(user, options = { size: 50 })
gravatar_id = Digest::MD5::hexdigest(user.email.downcase)
size = options[:size]
gravatar_url = "https://secure.gravatar.com/avatar/#{gravatar_id}?s=#{size}"
image_tag(gravatar_url, alt: user.name, class: "gravatar")
end
您必须进一步阅读以了解如何重新定义该方法(它必须在某处)。
我正在努力学习 Michael Hartl's Ruby on Rails Tutorial,虽然我已经能够自己解决一些错误,但第 9 章中的这个错误让我陷入了困境。
我的views/users/index.html.erb
:
<% provide(:title, 'All users') %>
<h1>All users</h1>
<ul class="users">
<% @users.each do |user| %> # Line flagged with error
<li>
<%= gravatar_for user, size: 50 %>
<%= link_to user.name, user %>
</li>
<% end %>
</ul>
我的用户助手:
module UsersHelper
def gravatar_for(user, options = { size: 50 })
gravatar_id = Digest::MD5::hexdigest(user.email.downcase)
gravatar_url = "https://secure.gravatar.com/avatar/#{gravatar_id}"
image_tag(gravatar_url, alt: user.name, class: "gravatar")
end
end
该错误还标记了我的文件中不存在的另一行代码;我猜它来自 Ruby 到 HTML 的转换?
delegate :to_xml, :to_yaml, :length, :collect, :map, :each, :all?, :include?, :to_ary, :join, to: :to_a
我为此绞尽脑汁将近两个小时没有任何进展。我所知道的是,当我用简单文本替换索引页时,这些错误就会消失。这是Gravatar的问题吗?我真的不知道,希望得到任何帮助。
好的,您将许多参数传递给 gravatar_for
方法。
重新定义如下,你可以像你一样使用它:
def gravatar_for(user, options = { size: 50 })
gravatar_id = Digest::MD5::hexdigest(user.email.downcase)
size = options[:size]
gravatar_url = "https://secure.gravatar.com/avatar/#{gravatar_id}?s=#{size}"
image_tag(gravatar_url, alt: user.name, class: "gravatar")
end
您必须进一步阅读以了解如何重新定义该方法(它必须在某处)。