好吧,我决定尝试不同的方法。现在我的页面只能通过数字 ID 而不是用户名或电子邮件访问。我希望它可以通过电子邮件地址访问。我试图覆盖它们,但它在 rails 4.0 中失败了,我尝试了 find_by_email 命令,该命令也失败了。这是我收到的错误消息:AccountsController#show 中的 ActiveRecord::RecordNotFound。唯一有效的方法是 find(params[:id]),它只适用于附加了 id 的帐户,如果它为 null,则完全失败。
有没有其他方法可以解决这个问题?
导轨控制器
def show
#puts "****************************************"
#puts params
if @account.nil?
render "shared/404"
else
#if !current_account.nil?
respond_with @account
#else
# render "shared/403"
#end
end
def load_findaccount
#params[:id] remains fixed but find_by_id changes to username
@account = Account.find(params[:id])
#user_path(user)
账户.rb
class Account < ActiveRecord::Base
#def to_param # overridden
# email
#end
validates :first_name, :presence => true
validates :last_name, :presence => true
validates :email, :presence => true, :uniqueness =>{:case_sensitive => false}
end