补丁和删除总是返回204:没有内容?

时间:2015-03-04 02:21:22

标签: ruby-on-rails activerecord model-view-controller response patch

我有两个模型:cardlane,其中lane有许多cardscard属于lane

def create
    lane = lane_find
    card = lane.cards.build(card_params)

    if card.save 
        respond_with lane, :include => :cards
    else
        respond_with({ :errors => card.errors.full_messages }, :status => 422, :location => nil)
    end
end

def update
    card = Card.find(params[:id])
    if card.update_attributes(card_params)
        respond_with card.lane
    else
        respond_with({ :errors => card.errors.full_messages }, :status => 422, :location => nil)
    end
end

(注意:lane_find是一个未在此处显示的私有函数,但它只是Lane.find(params[:lane_id])

预期的行为是API客户端在未正确保存时接收422错误代码,并传递错误(例如非唯一或空白)。

奇怪的是,创建动作完全按预期工作,而更新和销毁动作(此处未显示)总是在无效输入时返回204!

在命令行上手动测试表明验证设置正确,card.update_attributes(content: "")返回false

这真让我烦恼!我很想你的反馈意见:))

编辑:card.rb

class Card < ActiveRecord::Base
    validates :content, :uniqueness => {:case_sensitive => false}, :length => { minimum: 1 }, presence: true
    belongs_to :lane
end

0 个答案:

没有答案