0
因此,我在我的应用程序中为用户留下了有关电影评论的评论模型。我正在为每个单独的电影在“显示”视图中呈现新评论的表单。但是,当我尝试提交空白评论以检查页面上显示的错误时,他们没有。我可能做错了什么?为什么我的Active Record验证无效?
我的审查模式:
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 %>
但是,这将尝试呈现新的模板的评论,我想显示在单个电影相同的显示视图内的错误 – David 2012-08-03 16:15:58
@David - 你不能重定向和这项工作。你可以使表单成为一个远程表单,并使用jquery替换成功/失败的表单。这会让你保持在你所在的同一页面。 – 2012-08-03 18:02:38