0

好吧,我决定尝试不同的方法。现在我的页面只能通过数字 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
4

2 回答 2

0

你可以使用这个Account.where(:email => "example@pop.com")。这将检索该电子邮件 ID 的记录,我认为在您的代码中最多有一条记录,因为电子邮件 ID 在您的模型中是唯一的。

于 2013-08-14T04:38:23.690 回答
0

我决定自己解决这个问题,只使用 Rails 3.2。所以这将结束这个问题。

于 2013-09-25T06:21:16.390 回答