记录未找到导轨5 ActiveRecord错误

时间:2016-07-07 21:41:56

标签: ruby ruby-on-rails-4 rails-activerecord

我正在尝试使用一个虚荣URL,该URL使用SecureRandom发出的一个涵洞的身份,然后通过显示页面显示该涵洞。

这是错误消息的屏幕截图: enter image description here

这是浏览器网址的屏幕截图: enter image description here

  

我的涵洞控制器是:

我试过了两个:

@culvert = Culvert.find_by_culvert_ident(params[:id])
  AND
@culvert = Culvert.find_by_id(params[:culvert_ident])

在我的涵洞控制器show动作中,两者都产生相同的结果(屏幕截图)

  private
    # Use callbacks to share common setup or constraints between actions.
    def set_culvert
      @culvert = Culvert.find_by_culvert_ident(params[:id])
    end

    # Never trust parameters from the scary internet, only allow the white list through.
    def culvert_params
      params.require(:culvert).permit(:culvert_ident, :latitude, :longitude, :address, :user_id)
    end

这是我的Culvert模型识别生成器和虚荣URL方法:

  before_create :generate_culvert_ident

  # Relationships
  belongs_to :user

  # Model Validations
  validates_uniqueness_of :culvert_ident

  # Ident Generator
  def generate_culvert_ident
    begin
      self.culvert_ident = SecureRandom.hex(3).upcase
      other_culvert = Culvert.find_by(culvert_ident: self.culvert_ident)
    end while other_culvert
  end

  # Url Direction
  def to_param
    culvert_ident
  end

所以我的目标是创建涵洞,自动分配唯一标识符,保存并使用自定义标识符显示涵洞,而不是标准1,2,3,4 id

这适用于我使用的另一个网络应用程序,设置完全相同但我在这里得到此错误,无法找出原因。如果您需要更多信息,请告诉我!

**

  

编辑#1 - 添加控制台输出的屏幕截图

**

enter image description here enter image description here

1 个答案:

答案 0 :(得分:0)

所以这里的问题是我删除了涵洞控制器

before_action :set_culvert

一旦我重新添加set_user操作,问题就解决了。

感谢您的帮助!