问题
So I'm using this social gem but for some reason I'm getting the following error:
wrong number of arguments (1 for 0)
and this is the line of code that's causing the error:
<%= tweet_button(via: "peterc", url: "http://news.ycombinator.com", :text => "AWESOME.") %>
Not sure what I'm doing wrong, I've read the Documentation on the gem quite thoroughly.
I've spent the last 2 weeks straight on this, with no luck.. whoever can help would be REALLY appreciated.
Update;
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'
Update 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
回答1:
Remove tweet_button
method from the PreorderHelper
as it is overriding the tweet_button
method of social-buttons
gem.
回答2:
You're overriding the tweet_button
method that is supplied by that gem with your own implementation in the PreorderHelper
module. The overriding method doesn't take any arguments, and thus, you're seeing the wrong number of arguments: 0 for 1
error.
来源:https://stackoverflow.com/questions/22260806/wrong-number-of-arguments-1-for-0-social-gem