wrong number of arguments (1 for 0) (Social Gem )

喜欢而已 提交于 2019-12-11 08:49:33

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!