2

助けてくれてありがとう!

Railsチュートリアルの第6章を終えたところです。

http://ruby.railstutorial.org/chapters/modeling-users#sec-6_4

私は走った:

❤ git checkout master

それはうまくいき、それから私は走りました:

❤ git merge modeling-users

そして、次のエラーが発生しました:

Updating fc9f72a..90d1ba6
error: The following untracked working tree files would be overwritten by merge:
        app/models/user.rb
Please move or remove them before you can merge.
Aborting

これは私のapp/models /user.rbファイルです:

# == Schema Information
#
# Table name: users
#
#  id         :integer          not null, primary key
#  name       :string(255)
#  email      :string(255)
#  created_at :datetime         not null
#  updated_at :datetime         not null
#

class User < ActiveRecord::Base
  attr_accessible :name, :email, :password, :password_confirmation
  has_secure_password

  before_save { |user| user.email = email.downcase }

  validates :name, presence: true, length: { maximum: 50 }
  VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i
  validates :email, presence:   true,
                    format:     { with: VALID_EMAIL_REGEX },
                    uniqueness: { case_sensitive: false }
  validates :password, presence: true, length: { minimum: 6 }
  validates :password_confirmation, presence: true
end

そして今、私のSublime Text 2 user_spec.rbおよびapplication_helper_spec.rbファイルは保存されず、次のエラーが発生します。

〜/ code / rails_projects / sample_app / spec / models/user_spec.rbを保存できません

user_spec.rb:

# == Schema Information
#
# Table name: users
#
#  id         :integer          not null, primary key
#  name       :string(255)
#  email      :string(255)
#  created_at :datetime         not null
#  updated_at :datetime         not null
#

require 'spec_helper'

describe User do

  before do
    @user = User.new(name: "Example User", email: "user@example.com", 
                     password: "foobar", password_confirmation: "foobar")
  end

  subject { @user }

  it { should respond_to(:name) }
  it { should respond_to(:email) }
  it { should respond_to(:password_digest) }
  it { should respond_to(:password) }
  it { should respond_to(:password_confirmation) }
  it { should respond_to(:authenticate) }

  it { should be_valid }

  describe "when name is not present" do
    before { @user.name = " " * 51 }
    it { should_not be_valid }
  end

  describe "when email format is valid" do
    it "should be valid" do
      addresses = %w[user@foo.COM A_US-ER@f.b.org frst.lst@foo.jp a+b@bax.cn]
      addresses.each do |valid_address|
        @user.email = valid_address
        @user.should be_valid
      end
      end
  end

  describe "when email format is valid" do
    it "should be valid" do
      addresses = %w[user@foo.COM A_US-ER@f.b.org frst.lst@foo.jp a+b@baz.cn]
      addresses.each do |valid_address|
        @user.email = valid_address
        @user.should be_valid
      end      
    end
  end

  describe "when email address is already taken" do
    before do
      user_with_same_email = @user.dup
      user_with_same_email.email = @user.email.upcase
      user_with_same_email.save
    end

    it { should_not be_valid }
  end

  describe "when password is not present" do
    before { @user.password = @user.password_confirmation = " " }
    it { should_not be_valid }
  end

  describe "when password doesn't match confirmation" do
    before { @user.password_confirmation = "mismatch" }
    it { should_not be_valid }
  end

  describe "when password confirmation is nil" do
    before { @user.password_confirmation = nil }
    it { should_not be_valid }
  end

  describe "with a password that's too short" do
    before { @user.password = @user.password_confirmation = "a" * 5 }
    it { should be_invalid }
  end

  describe "return value of authenticate method" do
    before { @user.save }
    let(:found_user) { User.find_by_email(@user.email) }

    describe "with valid password" do
      it { should == found_user.authenticate(@user.password) }
    end

    describe "with invalid password" do
      let(:user_for_invalid_password) { found_user.authenticate("invalid") }

      it { should_not == user_for_invalid_password }
      specify { user_for_invalid_password.should be_false }
    end
  end
end

および私のapplication_helper_spec.rbファイル:

require 'spec_helper'

describe ApplicationHelper do

  describe "full_title" do
    it "should include the page title" do
      full_title("foo").should =~ /foo/
    end

    it "should include the base title" do
      full_title("foo").should =~ /^Ruby on Rails Tutorial Sample App/
    end

    it "should not include a bar for the home page" do
      full_title("").should_not =~ /\|/
    end
  end
end
4

1 に答える 1

3

現在どのブランチにも追加されていないフォルダーにファイルThe following untracked working tree files would be overwritten by mergeがあるため、エラーが発生しています。app/models/user.rb

git statusこれは、コマンドを実行して確認できます。次のような出力が表示されます。

$ git status
# On branch master
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   app/models/user.rb
no changes added to commit (use "git add" and/or "git commit -a")

を実行すると、ブランチをブランチgit merge modeling-usersにマージしようとしています。ブランチにはすでに のコピーが含まれています。merge コマンドは、追跡されていないバージョンのファイルを、ブランチ内に既にあるバージョンで上書きします。したがって、保持したいものを失う可能性があることを警告するエラーメッセージ.modeling-usersmastermodeling-usersapp/models/user.rbmodeling-users

git statusメッセージが示すように、コマンドを実行してマスター ブランチにファイルを追加しますgit add app/models/user.rb

メッセージはこれとは無関係のUnable to save ~/code/rails_projects/sample_app/spec/models/user_spec.rbようです。エラー メッセージからは多くのことがわかりません。おそらく他の場所にもっと情報があります。

プロジェクトを閉じて、もう一度開くと役立つ場合があります。ファイルを別のエディター (おそらく vim?) で保存してみてください。

于 2013-02-07T03:23:12.187 に答える