2013-02-13 116 views
0

嗨我试图从点击事件远程更新我的数据库中的一个元素。 当点击事件被触发我收到以下错误,但我相信,我用正确的方法更新数据库记录与点击事件

Started PUT "/availabilities/131/edit" for 124.168.74.144 at 2013-02-13 08:02:40 +0100 

ActionController::RoutingError (No route matches [PUT] "/availabilities/131/edit"): 

HAML点击事件

.six.columns#named_players 


%h5 Named Players 
    %table.twelve 
    %thead 
     %tr 
     %th Change Status 
     %th Attending 
    %tbody 
     - @availabilities.each do |a| 
     %tr 
      %td= full_name(a.user) 
      %td 
      %ul.button-group.two-up.even 
       %li= button_to 'Accept', edit_availability_path(a), :remote => true, :method => :put, :class => 'button tiny success', :disable_with => 'Add' 
       %li= link_to 'Decline', '#', :remote => true, :method => :put, :class => 'button tiny alert' 

控制器

def update 
    @availability = Availability.find(params[:id]) 

    respond_to do |format| 
     if @availability.update_attributes(params[:availability]) 
     format.html { redirect_to @availability, :notice => 'Availability was successfully updated.' } 
     format.js 
     else 
     format.html { render :action => "edit" } 
     format.js 
     end 
    end 
    end 

回答

0

它你点击[PUT] "/availabilities/131/edit"而不是[PUT] "/availabilities/131/update"

+0

所以我需要改变我的路线? – 2013-02-13 07:45:53

+0

你必须添加更新路由(如果它还不存在),并且你的按钮(或链接)必须调用更新控制器方法 – 2013-02-13 07:54:09

+0

更新在我的控制器中已经如上所述,所以id需要更改链接? – 2013-02-13 08:05:37