重复RecordNotFound错误

时间:2017-03-26 03:11:48

标签: ruby-on-rails ruby haml

我的索引页面没有显示我的任何帖子(此处命名为)

但是,经过进一步的排查后,似乎根本没有创建我的帖子!

我尝试添加一个全新的帖子(fit),它给了我一个成功的消息但是我的索引没有显示所述帖子,在尝试导航到/ fits / X之后它给了我一个ActiveRecord :: RecordNotFound(错误如下)

Extracted source (around line #56):            
def set_fit
    @fit = Fit.find(params[:id])
end

我的控制器看起来像这样

def new
    @fit = current_user.fits.build
end

def create
    if @fit = current_user.fits.build(fit_params)
        flash[:success] = "Your fit has been created!"
        redirect_to fits_path
    else
        flash.now[:alert] = "Error adding fit! Please check fields."
        render :new
    end
end

这是我的模特

class Fit < ActiveRecord::Base
 validates :user_id, presence: true
 validates :image, presence: true

 belongs_to :user

 has_many :comments, dependent: :destroy

 has_attached_file :image, styles: { :medium => "600x" }
 validates_attachment_content_type :image, :content_type => /\Aimage\/.*\Z/
end

我还将此添加到我的routes.rb中。这可能是问题吗? (由于尚未添加任何评论)

Rails.application.routes.draw do
 devise_for :users, :controllers => { registrations: 'registrations' }  
 resources :fits do
   resources :comments
 end

 root 'fits#index'
end

过去一小时我一直在摸不着头脑,正在努力解决这个问题!即使我确信这是一件轻微的事情,我只是完全忽略了。

如果您需要访问其他任何内容,我已将其推送到github。 https://github.com/thgilartlU/MFID

提前致谢!

1 个答案:

答案 0 :(得分:0)

我认为问题出在你的create方法中。您没有保存记录。创建变量,然后确保保存它。

def create
  @fit = current_user.fits.build(fit_params)
  if @fit.save
      flash[:success] = "Your fit has been created!"
      redirect_to fits_path
  else
      flash.now[:alert] = "Error adding fit! Please check fields."
      render :new
  end
end