Ruby on rails 为什么Rails试图在我的控制器中执行错误的方法?

Ruby on rails 为什么Rails试图在我的控制器中执行错误的方法?,ruby-on-rails,Ruby On Rails,我一定错过了一些基本的东西。我不明白为什么Rails试图对给定的路由执行错误的方法。我有一个控制器,可以通过Twilio处理短信 sms_controller.rb 所有Ruby对象都有一个方法send,该方法继承自类Object()。创建名为send的操作时,会覆盖它 Rails中的一些代码使用1个参数调用send(因为Object#send可以接收任何参数)。但是,当您重写它时,您的方法已被调用,并且它希望收到2个参数 您需要将方法send重命名为另一个名称。可能您有另一个优先级更高的路由,

我一定错过了一些基本的东西。我不明白为什么Rails试图对给定的路由执行错误的方法。我有一个控制器,可以通过Twilio处理短信

sms_controller.rb


所有Ruby对象都有一个方法
send
,该方法继承自类
Object
()。创建名为
send
的操作时,会覆盖它

Rails中的一些代码使用1个参数调用
send
(因为
Object#send
可以接收任何参数)。但是,当您重写它时,您的方法已被调用,并且它希望收到2个参数


您需要将方法
send
重命名为另一个名称。

可能您有另一个优先级更高的路由,而这另一个路由正在发送到错误的操作。发布你的路线。rb。有点怀疑。。。此命名空间中没有以sms开头的内容。刚刚发布了完整的文件。如果你看到什么,让我知道。Thx.routes.rb似乎还可以。你能发布完整的错误消息吗?你想要什么路线?当
receive
不接受任何参数时,为什么你的错误会说“1代表2”?你是不是想传递一些让人困惑的参数?不客气。如果你认为答案有用,你可以给它打+1分。:)事实上我不能。。。bcuz显然你需要+10声誉才能在这里做任何事情:P
class SmsController < ApplicationController
  skip_before_filter :verify_authenticity_token  

  def send(message, number)
    twilio_sid = ENV["TS_TWILIO_SID"]
    twilio_token = ENV["TS_TWILIO_TOKEN"]

    disclaimer = "\n\nReply HELP for help. Reply STOP to unsubscribe. Reply YES to resubscribe."

    @twilio_client = Twilio::REST::Client.new twilio_sid, twilio_token

    @twilio_client.account.sms.messages.create(
      :from => ENV["TS_TWILIO_PHONE_NUMBER"],
      :to => number,
      :body => message + disclaimer
     )
  end

  def receive
    message_body = sms_params[:body]
    from_number = sms_params[:from]

    SMSLogger.log_text_message from_number, message_body
  end

  private

  def sms_params
    params.require(:sms).permit(:body, :from)
  end
end
require 'sidekiq/web'

<redacted>::Application.routes.draw do

  authenticate :user, lambda { |u| u.admin? } do
    mount Sidekiq::Web => '/sidekiq'
  end

  devise_for :users, controllers: { 
                       registrations: 'registrations', 
                       sessions: 'sessions',  
                       passwords: 'passwords',
                       :omniauth_callbacks => "omniauth_callbacks"
                     }

  get 'users/sign_up', to: redirect('/sign-up')

  # Static Routes
  get 'feed'            => 'client#feed'
  get 'share/:tag'      => 'client#share'
  get 'share/:tag/:id'  => 'client#share'
  get 'history'         => 'client#history'
  get 'favorites'       => 'client#favorites'
  get 'submissions'     => 'client#submissions'
  get 'bumps'           => 'client#bumps'
  get 'tag'             => 'client#tag'
  get 'bump/:ref_id'    => 'client#bump'

  #Enable Push
  get 'push-enable/:user_id'  => 'client#push_enable'
  get 'push'                  => 'client#push'

  # Beta access flow, ordered by good path
  get 'code'               => 'client#access_code'
  get 'disclaimer'         => 'client#disclaimer'
  get 'terms'              => 'client#terms'
  get 'sign-up'            => 'client#signup'
  get 'resend'             => 'client#resend_link'
  get 'welcome'            => 'client#welcome'
  get 'selectusername'     => 'client#username_select'

  # Multi-step beta access flow
  post 'confirm-beta'              => 'client#confirm_beta_token'
  post 'confirm-disclaimer'        => 'client#disclaimer_agreement'
  post 'confirm-terms'             => 'client#terms_agreement'
  post 'sms'                       => 'sms#receive'

  # User routes
  put 'user'                        => 'users#update'
  post 'authentication/from-native' =>  'users#from_native'

  # JSON API
  namespace :api do

    get 'card/:id' => 'media#show'

    # Media API
    get  'media/:tag'                       => 'media#next'
    get  'share/:tag/:id/:limit/:offset'    => 'media#share_feed'
    post 'media/:media_id/tags/:name/'      => 'tags#create'
    post 'media/:media_id/report'           => 'media#report'
    get  'media/:media_id/unreport'         => 'media#remove_report'

    # Tags API
    get  'tags'                          => 'tags#tag_feed'
    get  'tags/search'                   => 'tags#search'
    get  'tags/:name'                    => 'tags#show'

    # Vote API
    get  'votes'                         => 'votes#show'
    post 'votes/:vote/:id/tag/:tag'      => 'media#create_vote'

    # Users API
    get  'users/:id/stats'               => 'votes#stats'
    get  'users'                         => 'users#stats'
    get  'users/buddies'                 => 'users#buddies'
    patch  'users/:id'                   => 'users#update'
    get 'users/unsubscribe/:id/:type'    => 'users#unsubscribe'
    get 'users/check-name/:username'     => 'users#check_username'

    # History API
    get  'history/paginated/:limit/:offset'  => 'users#paginated_history'
    get  'history/bracketed/:id'             => 'users#bracketed_history'
    get  'history/next/:id'                  => 'users#next_history'
    get  'history/previous/:id'              => 'users#previous_history'

    # Favorites API
    get  'favorites/paginated/:limit/:offset'      => 'favorites#paginated_history'
    get  'favorites/bracketed/:id'                 => 'favorites#bracketed_history'
    get  'favorites/next/:id'                      => 'favorites#next_history'
    get  'favorites/previous/:id'                  => 'favorites#previous_history'
    post 'favorites/:card_id'                      => 'favorites#create'
    delete 'favorites/:card_id'                    => 'favorites#delete'

    # Referrals API
    get  'referral/made/paginated/:limit/:offset'         => 'referrals#paginated_collection_made'
    get  'referral/received/paginated/:limit/:offset'     => 'referrals#paginated_collection_received'
    post 'referral/:card_id/:user_ids'                    => 'referrals#create'
    post 'referral/:card_id/:referral_id'                 => 'referrals#bump'
    get 'referral/seen/:referral_id'                      => 'referrals#seen'

    #Bumps API
    post 'bump/:media_id/:sharer_ids'       => 'bumps#create'
    get 'bump/seen/:bump_id'                => 'bumps#seen'


  end

  get '/desktop' => 'client#desktop'

  root to: "client#index"

end
Started POST "/sms" for 127.0.0.1 at 2015-04-25 18:09:22 -0700
  ActiveRecord::SchemaMigration Load (0.6ms)  SELECT "schema_migrations".* FROM "schema_migrations"
Processing by SmsController#receive as */*
  Parameters: {"Body"=>"\"hello\"", "From"=>"\"+16613328096\""}
Completed 500 Internal Server Error in 0ms

ArgumentError (wrong number of arguments (1 for 2)):
  app/controllers/sms_controller.rb:4:in `send'


  Rendered /Users/placey/.rvm/gems/ruby-2.0.0-p247/gems/actionpack-4.0.2/lib/action_dispatch/middleware/templates/rescues/_source.erb (0.6ms)
  Rendered /Users/placey/.rvm/gems/ruby-2.0.0-p247/gems/actionpack-4.0.2/lib/action_dispatch/middleware/templates/rescues/_trace.erb (1.7ms)
  Rendered /Users/placey/.rvm/gems/ruby-2.0.0-p247/gems/actionpack-4.0.2/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (0.8ms)
  Rendered /Users/placey/.rvm/gems/ruby-2.0.0-p247/gems/actionpack-4.0.2/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (24.2ms)