嗨我正在尝试更新我的数据库(PostgreSQL)中的值,当用户点击某个链接时,虽然我的工作正常,但我认为不是最佳做法。如果有人能证明我怎样才能更好地实现这一目标会很棒
查看
%ul.button-group.round.even-3
%li= link_to '<i class="general foundicon-checkmark"></i>'.html_safe, accept_availability_path(a), :method => 'put', :remote => true, :class => 'button success tiny', :id => a.id, :disable_with => ''
控制器
def accept
@availability = Availability.find(params[:id])
@availability.available= true
respond_to do |format|
if @availability.update_attributes(params[:availability])
format.html { render :nothing => true }
format.js
else
format.html { render :action => "edit" }
format.js
end
end
end
路由
resources :availabilities do
put 'accept', :on => :member
put 'decline', :on => :member
end
答案 0 :(得分:2)
你正在做的事情没有什么特别的错误。您的控制器不需要使用update_attributes,您没有将任何属性传递给它。您可以save
将其更改为.available
def accept
@availability = Availability.find(params[:id])
@availability.available = true
respond_to do |format|
if @availability.save
format.html { render :nothing => true }
format.js
else
format.html { render :action => "edit" }
format.js
end
end
end
你可以像这样结束你的路线:
resources :availabilities do
member do
put :accept
put :decline
end
end