0
上午所有,的ActiveRecord :: RecordNotSaved - 強制嵌套重定向
花費了大半夜搞清楚如何把一個限制在我的模型創建我終於得到了地方之後。嵌套聲明現在向我展示未保存這是一個好消息。
但是我似乎無法得到重定向或flash [:base]的工作。這是下面的代碼:
class SnippetsController < ApplicationController
before_filter :find_book
def create
if @snippet = @book.snippets.create!(params[:snippet])
redirect_to @book
else
flash[:base]
#render
end
end
def approve
#@snippet = @book.snippet.find(params[:id])
if @snippet.update_attribute(:approved, true)
redirect_to users_path
else
render root_path
end
end
def edit
@snippet = @book.snippets.find(params[:id])
end
def update
@snippet = @book.snippets.find(params[:id])
respond_to do |format|
if @snippet.update_attributes(params[:snippet])
format.html { redirect_to @book, notice: 'Comment was successfully updated.' }
else
format.html { render action: "edit" }
end
end
end
private
def find_book
@book = Book.find(params[:book_id])
end
end
模型父(書)
class Book < ActiveRecord::Base
has_many :snippets
attr_accessible :title, :book_id, :size
def snippets_limit_reached?
if size == 0
self.snippets.count >= 2
elsif size == 1
self.snippets.count >= 3
elsif size == 2
self.snippets.count >= 4
else
return false
end
end
end
兒童(摘錄)
class Snippet < ActiveRecord::Base
before_create :check_limit
belongs_to :book
attr_accessible :content, :book_id
validates :book_id, presence: true
def check_limit
if book.snippets_limit_reached?
errors.add :base, 'Snippet limit reached.'
return false
end
return true
end
end
讓我知道你需要什麼,僅供參考,當它運行我無法越過嵌套的創建!
if @snippet = @book.snippets.create!(params[:snippet])
謝謝,不知道爆炸是否這樣會避免它,我可以在哪裏 –