1

当我尝试查看用户索引时,我一直遇到错误。这是 Hartl 的 Ruby on Rails 教程的第 9 章(一个很好的教程)

参数数量错误(2 比 1)

<li>
  <%= gravatar_for user, size: 52 %>
  <%= link_to user.name, user %>
  <% if current_user.admin? && !current_user?(user) %>
    | <%= link_to "delete", user, method: :delete,
                                  data: { confirm: "You sure?" } %>
  <% end %>
</li>

我不知道为什么它认为第 2 行认为我正在调用 2 个参数。

4

2 回答 2

6

您一定错过了第 7 章(第 7.6 节)中的练习:)。如果您查看该部分,您将看到更新后的帮助程序,app/helpers/users_helper.rb如下所示:

module UsersHelper

  # Returns the Gravatar (http://gravatar.com/) for the given user.
  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
end

更新帮助程序后,您应该能够使用此方法和两个参数。第二个参数是可选的,所以如果你调用gravatar_for user(即没有size参数)然后使用默认大小50,如果你调用gravatar_for user, size:52then52将用于gravatar的大小。

于 2013-09-01T20:33:15.823 回答
0

恭喜你进入第一章。9!我厌倦了在第一章流泪。6

第 2 行是这样的:

<%= gravatar_for user, size: 52 %>

...相当于:

<%= gravator_for(user, {size: 52}) %>

这是两个论点。

于 2013-09-01T19:55:45.883 回答