0

我正在尝试解决如何在单击时创建 link_to 或 button_to 触发我添加到控制器中的以下操作

def send_notification
    @event = Event.find(params[:id])
    @users = User.where(:team_id => current_user[:team_id]).all
    @account_sid = '@@@@'
    @auth_token = '@@@@'# your authtoken here
    @client = Twilio::REST::Client.new(@account_sid, @auth_token)
    @account = @client.account

    if @event.update_attributes(params[:event])
      @users.each do |u|
        #Starts the SMS process
        #Uncomment to enable the SMS process
        team = truncate(u.team.name, :length => 15, :omission => '')
        opponent = truncate(@event.opponent.name, :length => 10, :omission => '')
        date = @event.datetime.strftime("%a, %e %b, %Y")
        time = @event.datetime.to_s(:event_time)
        location = truncate(@event.location.name, :length => 15, :omission => '')
        if u.mobile
          @message = @account.sms.messages.create({
                    :from => '+@@@@',
                    :to => "+#{phone_number(u.mobile, :Australia)}",
                    :body => "#{u.first_name}: #{team} v #{opponent} #{date} #{time}@ #{location}" })
          puts @message
        end
        @availability = u.availabilities.update(:unique_id => Base64.encode64("#{u.id.to_s}_#{@event.id.to_s}_#{@event.team.id.to_s}"))
        Notifier.event_added(u,@event).deliver
      end
    end
  end

我已将以下内容添加到我的路线中

resources :events do
    post 'send_notifications'
    get 'page/:event_page', :action => :index, :on => :collection
  end

rake 路由的输出 event_send_notifications POST /events/:event_id/send_notifications(.:format)

查看代码 =button_to 'Send Notifications' , event_send_notifications_path, :class => 'button'

错误 No route matches {:action=>"send_notifications", :controller=>"events"}

4

2 回答 2

1

将您的控制器操作重命名为send_notifications.
您的操作需要一些参数,因此您也应该提供它们。然后,以这种方式使用它

=button_to('Send Notifications' , send_notifications_event_path(params), :action => 'send_notifications' , :class => 'button')

param是您的操作所期望的参数散列。

此外,使您的操作 RESTful 为

resources :events do
    post 'send_notifications', :on => :member
    get 'page/:event_page', :action => :index, :on => :collection
end

让我知道它是否有帮助,或者您是否再次遇到相同的错误。

于 2013-04-28T07:25:13.497 回答
0

您已将控制器操作命名为send_notification(单数),但在路由中使用了复数send_notifications。您应该选择其中一个并将它们命名相同。

于 2013-04-28T07:09:12.220 回答