0

明確にするために、私はRubyとRailsが初めてです。

hereherehereの提案を使用して問題を解決しようとしましたが、それらは私の問題と直接関係がないようでした。または、私は愚かすぎて理解できません。

オブジェクトを更新せず、アプリをリダイレクトするシナリオをテストしようとしています。コントローラーのコードが正しいかどうかはわかりません。おそらく、このシナリオをカバーしていないと思います。ここに私のテストコードがあります:

  test "should not update status if nothing has changed" do
    sign_in users(:rodrigo)
    put :update, id: @status
    assert_redirected_to status_path(assigns(:status))
    assert_equal assigns(:status).user_id, users(:rodrigo).id
  end

、および私のコントローラー更新コード:

  def update
    @status = current_user.statuses.find(params[:id])
    @document = @status.document
    if params[:status] && params[:status].has_key?(:user_id)
      params[:status].delete(:user_id)
    end
    respond_to do |format|
      if @status.update_attributes(params[:status]) &&
         @document && @document.update_attributes(params[:status][:document_attributes])
        format.html { redirect_to @status, notice: 'Status was successfully updated.' }
        format.json { head :no_content }
      else
        format.html { render action: "edit" }
        format.json { render json: @status.errors, status: :unprocessable_entity }
      end
    end
  end

かどうかを既に確認しようとしましたが@status.changed?、実際にはそうではありませんでした。ここには選択肢がありません。誰かが助けたいと思っていて、さらに情報が必要な場合は、私が提供できます。

4

1 に答える 1