当我尝试查看用户索引时,我一直遇到错误。这是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个参数。
答案 0 :(得分: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
(即没有大小参数),则使用默认大小50
,如果您拨打gravatar_for user, size:52
,则52
将用于gravatar的大小。
答案 1 :(得分:0)
祝贺你来到分会。 9!章节中我很无聊。 6
第2行是这样的:
<%= gravatar_for user, size: 52 %>
......相当于:
<%= gravator_for(user, {size: 52}) %>
这是两个论点。