错误的参数数量(1表示0)(社交宝石)

时间:2014-03-07 21:16:10

标签: ruby-on-rails ruby ruby-on-rails-4 ruby-on-rails-4.1

所以我正在使用这个社交宝石但由于某种原因我收到以下错误:

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

2 个答案:

答案 0 :(得分:0)

tweet_button移除PreorderHelper方法,因为它覆盖了tweet_button gem的social-buttons方法。

答案 1 :(得分:0)

您在tweet_button模块中使用自己的实现覆盖了该gem提供的PreorderHelper方法。覆盖方法不带任何参数,因此,您看到wrong number of arguments: 0 for 1错误。