所以我正在使用这个社交宝石但由于某种原因我收到以下错误:
wrong number of arguments (1 for 0)
这是导致错误的代码行:
<%= tweet_button(via: "peterc", url: "http://news.ycombinator.com", :text => "AWESOME.") %>
不确定我做错了什么,我已经非常彻底地阅读了有关宝石的文档。
我已经花了最近两周的时间,没有运气......无论谁能提供帮助都会非常感激。
更新
wrong number of arguments (1 for 0)
Extracted source (around line #27):
24
25
26
27
28
29
30
<div class="social-buttons">
<%= link_to 'Share on Facebook', '', class: "zocial facebook" %>
<%= link_to 'Share on Twitter', '', class: "zocial twitter" %>
<div class="zocial twitter"><%= tweet_button(via: "peterc", url: "http://news.ycombinator.com", :text => "AWESOME.") %></div>
</div>
<a id="meetflappy"></a>
Trace of template inclusion: app/views/preorder/homepage/_show_dont_tell.html.erb, app/views/preorder/index.html.erb
Rails.root: /Users/user/Sites/selfstarter
Application Trace | Framework Trace | Full Trace
app/helpers/preorder_helper.rb:9:in `tweet_button'
app/views/preorder/homepage/_stats.html.erb:27:in `_app_views_preorder_homepage__stats_html_erb___583266768877320144_70197372691940'
app/views/preorder/homepage/_show_dont_tell.html.erb:2:in `_app_views_preorder_homepage__show_dont_tell_html_erb___1987989831881903472_70197362850480'
app/views/preorder/index.html.erb:2:in `_app_views_preorder_index_html_erb__3522201633818553639_70197398947440'
更新2
module PreorderHelper
def like_button(width = 70, show_faces = false)
raw "<div class=\"fb-like\" data-send=\"false\" data-width=\"#{width}\" data-layout=\"box_count\" data-show-faces=\"true\"></div>"
end
def pin_it_button
image_url = URI.encode("#{request.scheme}://#{request.host}#{image_path(Settings.product_image_path)}")
raw "<a href='http://pinterest.com/pin/create/button/?url=#{encoded_root_url}&media=#{image_url}' class='pin-it-button' count-layout='vertical'><img border='0' src='//assets.pinterest.com/images/PinExt.png' title='Pin It' /></a>"
end
def tweet_button
tweet_text = "I'm #{Settings.primary_stat_verb} number #{number_with_delimiter Order.backers, :delimiter => ","} #{Settings.tweet_text}!"
raw "<a href='https://twitter.com/share?url=/' id='tweet_button' class='twitter-share-button twitter-button' data-url=#{request.scheme}//#{request.host}' data-via='#{Settings.product_name}' data-lang='en' data-count='vertical' data-text=\"#{tweet_text}\">Tweet</a>"
end
def video_url
"#{Settings.video_embed_url}?" + case Settings.video_embed_url
when /vimeo/
'title=0&byline=0&portrait=0&autoplay=0'
when /youtube/
'autohide=1&showinfo=0&rel=0&autoplay=0'
else
''
end
end
def encoded_root_url
raw URI.encode "#{request.scheme}://#{request.host}/preorder"
end
def sold_out(payment_option)
payment_option.limit > -1 and order_count(payment_option) >= payment_option.limit
end
def order_count(payment_option)
Order.where(payment_option_id: payment_option).count(:token) # count of orders that have a token from amazon and are for this payment option
end
end
答案 0 :(得分:0)
从tweet_button
移除PreorderHelper
方法,因为它覆盖了tweet_button
gem的social-buttons
方法。
答案 1 :(得分:0)
您在tweet_button
模块中使用自己的实现覆盖了该gem提供的PreorderHelper
方法。覆盖方法不带任何参数,因此,您看到wrong number of arguments: 0 for 1
错误。