簡體   English   中英

為什么我的Active Record驗證不能驗證?

[英]Why aren't my Active Record validations validating?

所以我的應用程序中有一個評論模型,供用戶留下電影評論。 我正在為每部電影的“顯示”視圖中呈現一個新評論的表單。 但是,當我嘗試提交空白評論以檢查頁面上是否顯示錯誤時,他們卻沒有。 我能做錯什么?

我的評論模型:

class Review < ActiveRecord::Base
  attr_accessible :content
  belongs_to :user
  belongs_to :movie

  validates :user_id, presence: true
  validates :movie_id, presence: true
  validates :content, presence: true, length: { maximum: 1000 }

end

我的評論控制器:

class ReviewsController < ApplicationController
  before_filter :signed_in_user, only: [:new, :create, :destroy]

  def new
  end

  def create

    #I'm doing this to get around the mass assignment error.

    movie_id = params[:review].delete(:movie_id)
    @review = current_user.reviews.build(params[:review])
    @review.movie_id = movie_id

    if @review.save
      flash[:success] = "Review created!"
      redirect_to movie_path(@review.movie)
    else
      redirect_to movie_path(@review.movie)
    end
  end

  def destroy
  end
end

我的表格:

<%= form_for(:review, url: reviews_path) do |f| %>

  <%= f.hidden_field :movie_id %>
  <div class="field">
    <%= f.text_area :content, placeholder: "Write a new review..." %>
  </div>
  <%= f.submit "Submit", class: "btn btn-large btn-primary" %>
<% end %>

當您從#create方法重定向時,您將丟失錯誤...更改為

if @review.save
  flash[:success] = "Review created!"
  redirect_to movie_path(@review.movie)
else
  render :new
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM