我对 Ruby on Rails 还很陌生,我来自 PHP,我意识到这不仅仅是降低语法那么简单,还有很多好的结构实践需要考虑。
虽然我目前的工作有效,但我几乎可以肯定我没有以最好的方式做到这一点。
这就是我正在做的事情。我正在通过 AJAX 跟踪点击并更新数据库中的记录以监控流行的接入点。
这是我的控制器:
class AjaxController < ApplicationController
def track
elem = Tracking.where('element = ?', params[:element]).first
if elem.nil?
Tracking.create(:element => params[:element], :count => 0)
else
elem.count = elem.count + 1
elem.save
end
render :text => 'ok'
end
def validate
if request.xhr? && respond_to?(params[:callback])
return self.send(params[:callback])
end
no_access
end
private
def no_access
redirect_to root_url
end
end
这是我的模型:
class Tracking < ActiveRecord::Base
attr_accessible :element, :count
end
跟踪表:
+-------------------------+
| id | element | count |
+-------------------------+
| 1 | bazinga | 3 |
---------------------------
如果可以重构某些东西,谁能引导我朝着正确的方向前进?