質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

1回答

1238閲覧

rails tutorial の返信機能実装でテストが通らない

yachiyo

総合スコア3

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2021/08/26 11:57

前提・実現したいこと

rails testを通したい

https://qiita.com/johnslith/items/8d931b66f72c97c78199
上記の記事で実装を進めていったところrails testで同じ内容の大量エラー

users.unique_nameをどうすれば良いのかわかりません。

発生している問題・エラーメッセージ

test_should_get_new#SessionsControllerTest (6.81s) ActiveRecord::NotNullViolation: ActiveRecord::NotNullViolation: RuntimeError: NOT NULL constraint failed: users.unique_name 74/74: [===========] 100% Time: 00:00:06, Time: 00:00:06 Finished in 6.80925s 74 tests, 0 assertions, 0 failures, 74 errors, 0 skips 全部同じ内容のエラーになってしまう。

該当のソースコード

models/user.rb

class User < ApplicationRecord has_many :microposts, dependent: :destroy has_many :active_relationships, class_name: "Relationship", foreign_key: "follower_id", dependent: :destroy has_many :passive_relationships, class_name: "Relationship", foreign_key: "followed_id", dependent: :destroy has_many :following, through: :active_relationships, source: :followed has_many :followers, through: :passive_relationships, source: :follower attr_accessor :remember_token, :activation_token, :reset_token before_save :downcase_email before_save :downcase_unique_name before_create :create_activation_digest validates :name, presence: true, length: {maximum: 50} VALID_EMAIL_REGEX = /\A[\w+\-.]+@[a-z\d\-]+(.[a-z\d\-]+)*.[a-z]+\z/i validates :email, presence: true, length: {maximum: 255}, format: {with: VALID_EMAIL_REGEX}, uniqueness: true has_secure_password validates :password, presence: true, length: {minimum: 6},allow_nil: true VALID_UNIQUE_NAME_REGEX = /\A[a-z0-9_]+\z/i validates :unique_name, presence: true, length: { in: 5..15 }, format: { with: VALID_UNIQUE_NAME_REGEX }, uniqueness: { case_sensitive: false } class << self def digest(string) cost = ActiveModel::SecurePassword.min_cost ? BCrypt::Engine::MIN_COST : BCrypt::Engine.cost BCrypt::Password.create(string, cost: cost) end def new_token SecureRandom.urlsafe_base64 end end def remember self.remember_token = User.new_token update_attribute(:remember_digest, User.digest(remember_token)) end # トークンがダイジェストと一致したらtrueを返す def authenticated?(attribute, token) digest = send("#{attribute}_digest") return false if digest.nil? BCrypt::Password.new(digest).is_password?(token) end def forget update_attribute(:remember_digest, nil) end def activate update_columns(activated: true, activated_at: Time.zone.now) end def send_activation_email UserMailer.account_activation(self).deliver_now end def create_reset_digest self.reset_token = User.new_token update_columns(reset_digest: User.digest(reset_token), reset_sent_at: Time.zone.now) end def send_password_reset_email UserMailer.password_reset(self).deliver_now end def password_reset_expired? reset_sent_at < 2.hours.ago end def feed following_ids = "SELECT followed_id FROM relationships WHERE follower_id = :user_id" Micropost.where("user_id IN (#{following_ids}) OR user_id = :user_id", user_id: id) end def follow(other_user) following << other_user end def unfollow(other_user) active_relationships.find_by(followed_id: other_user.id).destroy end def following?(other_user) following.include?(other_user) end private def downcase_email email.downcase! end def create_activation_digest self.activation_token = User.new_token self.activation_digest = User.digest(activation_token) end def downcase_unique_name self.unique_name.downcase! end end

models/user_test.rb

require 'test_helper' class UserTest < ActiveSupport::TestCase def setup @user = User.new(name: "Example User", email: "user@example.com", password: "foobar", password_confirmation: "foobar", unique_name: "example_user") end test "should be valid" do assert @user.valid? end test "name should be present" do @user.name = " " assert_not @user.valid? end test "email should be present" do @user.email = " " assert_not @user.valid? end test "email validation should accept valid addresses" do valid_addresses = %w[user@example.com USER@foo.COM A_US-ER@foo.bar.org first.last@foo.jp alice+bob@baz.cn] valid_addresses.each do |valid_address| @user.email = valid_address assert @user.valid?, "#{valid_address.inspect} should be valid" end end test "email validaion should reject invalid addresses" do invalid_addresses =%w[user@example,com user_at_foo.org user.name@example. foo@bar_baz.com foo@bar+baz.com foo@bar..com] invalid_addresses.each do |invalid_address| @user.email = invalid_address assert_not @user.valid?, "#{invalid_address.inspect} should be invalid" end end test "email addresses should be unique" do duplicate_user = @user.dup @user.save assert_not duplicate_user.valid? end test "email addresses should be saved as lower-case" do mixed_case_email = "Foo@ExAMPle.CoM" @user.email = mixed_case_email @user.save assert_equal mixed_case_email.downcase,@user.reload.email end test "password should be present (nonblank)" do @user.password = @user.password_confirmation = ""*6 assert_not @user.valid? end test "password should have a minimum length" do @user.password = @user.password_confirmation = "a"*5 assert_not @user.valid? end test "authenticated? should return false for a user with nil digest" do assert_not @user.authenticated?(:remember, '') end test "associated microposts should be destroyed" do @user.save @user.microposts.create!(content: "Lorem ipsum") assert_difference 'Micropost.count', -1 do @user.destroy end end test "should follow and unfollow a user" do michael = users(:michael) archer = users(:archer) assert_not michael.following?(archer) michael.follow(archer) assert michael.following?(archer) assert archer.followers.include?(michael) michael.unfollow(archer) assert_not michael.following?(archer) end test "feed should have the right posts" do michael = users(:michael) archer = users(:archer) lana = users(:lana) lana.microposts.each do |post_following| assert michael.feed.include?(post_following) end michael.microposts.each do |post_self| assert michael.feed.include?(post_self) end archer.microposts.each do |post_unfollowed| assert_not michael.feed.include?(post_unfollowed) end end end

users_login_test.rb

省略 test "valid signup information" do get signup_path assert_difference 'User.count', 1 do post users_path, params: { user: { name: "Example User", email: "user@example.com", password: "password", password_confirmation: "password", unique_name: "example_user" } } end follow_redirect! end

users_signup_test.rb

require 'test_helper' class UsersSignupTest < ActionDispatch::IntegrationTest def setup ActionMailer::Base.deliveries.clear end test "invalid signup information" do get signup_path assert_no_difference 'User.count' do post users_path, params: { user: {name: "", email: "user@invalid", password: "foo", password_confirmation: "bar", unique_name: "" }} end assert_template 'users/new' assert_select 'div#error_explanation' assert_select 'div.field_with_errors' assert_select 'form[action="/signup"]' end test "valid signup information with account act ivation" do get signup_path assert_difference 'User.count', 1 do post users_path, params: {user: {name: "Example User", email: "user@example.com", password: "password", password_confirmation: "password", unique_name: "example_user" }} end assert_equal 1, ActionMailer::Base.deliveries.size user = assigns(:user) assert_not user.activated? log_in_as(user) assert_not is_logged_in? get edit_account_activation_path("invalid token", email: user.email) assert_not is_logged_in? get edit_account_activation_path(user.activation_token, email: 'wrong') assert_not is_logged_in? get edit_account_activation_path(user.activation_token, email: user.email) assert user.reload.activated? follow_redirect! assert_template 'users/show' assert is_logged_in? end end

試したこと

typoがないか一度確認はしました。
rails db:migrate:reset
rails db:seed
の再実行

エラーについて少し調べてみましたがわかりませんでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

NOT NULL constraint failed: users.unique_name
と言われています。
同じ名前はだめ、と言われてます。

ここ数年minitestは書いていないので具体的な正解か怪しいですが、
unique_name: "example_user"
このUserがtestDBに
どういうわけか残っている

rails db:seed で作られている

このtestの中のどこかで再度作ろうとしているか、
あたりかと。
乱数を発生させて 重ならない名前にしてみてください

投稿2021/08/26 22:53

winterboum

総合スコア23331

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yachiyo

2021/08/27 11:02

解答ありがとうございます。 seeds.rbのコードの内容です。 User.create!(name: "Example User", email: "example@railstutorial.org", password: "foobar", password_confirmation: "foobar", admin: true, activated: true, activated_at: Time.zone.now, unique_name: "example_user" ) 99.times do |n| name = Faker::Name.name email = "example-#{n+1}@railstutorial.org" password = "password" User.create!(name: name, email: email, password: password, password_confirmation: password, activated: true, activated_at: Time.zone.now, unique_name: "example_#{n+1}" ) end users = User.order(:created_at).take(6) 50.times do content = Faker::Lorem.sentence(word_count: 5) users.each { |user| user.microposts.create!(content: content)} end users = User.all user = users.first following = users[2..50] followers = users[3..40] following.each { |followed| user.follow(followed) } followers.each { |follower| follower.follow(user) } ここのコードがいけないのでしょうか?
winterboum

2021/08/27 11:32

最初のuserが unique_name: "example_user" で、ここで使ってるからですね。
yachiyo

2021/08/27 11:59 編集

unique_name: "first_user"に変えてやってみましたが同じエラーになりました。 コマンド実行履歴 rails db:migrate:reset rails db:seed rails test データベースの方を確認してみましたがunique_nameで被っている名前はありませんでした。 どうしたらいいですかね?
winterboum

2021/08/27 12:28

[データベースの方を確認してみましたが] development の方みてません?
winterboum

2021/08/27 12:33

たくさん出た、というのがどこで出ているのか確認したいので、出力載せてください
winterboum

2021/08/27 12:38

ああ、 出力載せる前にこのテストやってもらうか User.where(unique_name: "example_user").count が0 である
yachiyo

2021/08/28 08:53

ERROR["test_login_without_remembering", #<Minitest::Reporters::Suite:0x00005630eeb5f688 @name="UsersLoginTest">, 5.3444556940000325] test_login_without_remembering#UsersLoginTest (5.34s) ActiveRecord::NotNullViolation: ActiveRecord::NotNullViolation: RuntimeError: NOT NULL constraint failed: users.unique_name ERROR["test_profile_display", #<Minitest::Reporters::Suite:0x00005630eecad1c0 @name="UsersProfileTest">, 5.43385368600002] test_profile_display#UsersProfileTest (5.43s) ActiveRecord::NotNullViolation: ActiveRecord::NotNullViolation: RuntimeError: NOT NULL constraint failed: users.unique_name ERROR["test_feed_on_Home_page", #<Minitest::Reporters::Suite:0x00005630eee82ec8 @name="FollowingTest">, 5.523926880000033] test_feed_on_Home_page#FollowingTest (5.52s) ActiveRecord::NotNullViolation: ActiveRecord::NotNullViolation: RuntimeError: NOT NULL constraint failed: users.unique_name ERROR["test_followers_page", #<Minitest::Reporters::Suite:0x00005630ef04d5a0 @name="FollowingTest">, 5.631947249000007] test_followers_page#FollowingTest (5.63s) ActiveRecord::NotNullViolation: ActiveRecord::NotNullViolation: RuntimeError: NOT NULL constraint failed: users.unique_name ERROR["test_should_unfollow_a_user_with_Ajax", #<Minitest::Reporters::Suite:0x00005630ef223c08 @name="FollowingTest">, 5.721488251000039] test_should_unfollow_a_user_with_Ajax#FollowingTest (5.72s) ActiveRecord::NotNullViolation: ActiveRecord::NotNullViolation: RuntimeError: NOT NULL constraint failed: users.unique_name ERROR["test_should_follow_a_user_the_standard_way", #<Minitest::Reporters::Suite:0x00005630ef3ee290 @name="FollowingTest">, 5.813077733] test_should_follow_a_user_the_standard_way#FollowingTest (5.81s) ActiveRecord::NotNullViolation: ActiveRecord::NotNullViolation: RuntimeError: NOT NULL constraint failed: users.unique_name ERROR["test_should_follow_a_user_with_Ajax", #<Minitest::Reporters::Suite:0x00005630ef5bca40 @name="FollowingTest">, 5.9073898070000155] test_should_follow_a_user_with_Ajax#FollowingTest (5.91s) ActiveRecord::NotNullViolation: ActiveRecord::NotNullViolation: RuntimeError: NOT NULL constraint failed: users.unique_name ERROR["test_should_unfollow_a_user_the_standard_way", #<Minitest::Reporters::Suite:0x00005630ef78f188 @name="FollowingTest">, 6.000513402000024] test_should_unfollow_a_user_the_standard_way#FollowingTest (6.00s) ActiveRecord::NotNullViolation: ActiveRecord::NotNullViolation: RuntimeError: NOT NULL constraint failed: users.unique_name ERROR["test_following_page", #<Minitest::Reporters::Suite:0x00005630ef959608 @name="FollowingTest">, 6.090216787000031] test_following_page#FollowingTest (6.09s) ActiveRecord::NotNullViolation: ActiveRecord::NotNullViolation: RuntimeError: NOT NULL constraint failed: users.unique_name ERROR["test_destroy_should_require_logged-in_user", #<Minitest::Reporters::Suite:0x00005630efb33488 @name="RelationshipsControllerTest">, 6.180901395000035] test_destroy_should_require_logged-in_user#RelationshipsControllerTest (6.18s) ActiveRecord::NotNullViolation: ActiveRecord::NotNullViolation: RuntimeError: NOT NULL constraint failed: users.unique_name ERROR["test_create_should_require_logged-in_user", #<Minitest::Reporters::Suite:0x00005630efd0a950 @name="RelationshipsControllerTest">, 6.272761254000045] test_create_should_require_logged-in_user#RelationshipsControllerTest (6.27s) ActiveRecord::NotNullViolation: ActiveRecord::NotNullViolation: RuntimeError: NOT NULL constraint failed: users.unique_name ERROR["test_current_user_returns_nil_when_remember_digest_is_wrong", #<Minitest::Reporters::Suite:0x00005630ee8cac88 @name="SessionsHelperTest">, 6.408281782000017] test_current_user_returns_nil_when_remember_digest_is_wrong#SessionsHelperTest (6.41s) ActiveRecord::NotNullViolation: ActiveRecord::NotNullViolation: RuntimeError: NOT NULL constraint failed: users.unique_name ERROR["test_current_user_returns_right_user_when_session_is_nil", #<Minitest::Reporters::Suite:0x00005630eeab9648 @name="SessionsHelperTest">, 6.5753931490000355] test_current_user_returns_right_user_when_session_is_nil#SessionsHelperTest (6.58s) ActiveRecord::NotNullViolation: ActiveRecord::NotNullViolation: RuntimeError: NOT NULL constraint failed: users.unique_name ERROR["test_layout_links", #<Minitest::Reporters::Suite:0x00005630eebbfb50 @name="SiteLayoutTest">, 6.665872572000012] test_layout_links#SiteLayoutTest (6.67s) ActiveRecord::NotNullViolation: ActiveRecord::NotNullViolation: RuntimeError: NOT NULL constraint failed: users.unique_name ERROR["test_count_relationships", #<Minitest::Reporters::Suite:0x00005630eed86cb8 @name="SiteLayoutTest">, 6.773819333000006] test_count_relationships#SiteLayoutTest (6.77s) ActiveRecord::NotNullViolation: ActiveRecord::NotNullViolation: RuntimeError: NOT NULL constraint failed: users.unique_name ERROR["test_layout_links_when_logged_in", #<Minitest::Reporters::Suite:0x00005630eef5b0c0 @name="SiteLayoutTest">, 6.965856645000031] test_layout_links_when_logged_in#SiteLayoutTest (6.97s) ActiveRecord::NotNullViolation: ActiveRecord::NotNullViolation: RuntimeError: NOT NULL constraint failed: users.unique_name ERROR["test_should_get_about", #<Minitest::Reporters::Suite:0x00005630ef12f568 @name="StaticPagesControllerTest">, 7.130876010000009] test_should_get_about#StaticPagesControllerTest (7.13s) ActiveRecord::NotNullViolation: ActiveRecord::NotNullViolation: RuntimeError: NOT NULL constraint failed: users.unique_name ERROR["test_should_get_home", #<Minitest::Reporters::Suite:0x00005630ef2f83b8 @name="StaticPagesControllerTest">, 7.224998615000004] test_should_get_home#StaticPagesControllerTest (7.23s) ActiveRecord::NotNullViolation: ActiveRecord::NotNullViolation: RuntimeError: NOT NULL constraint failed: users.unique_name ERROR["test_should_get_contact", #<Minitest::Reporters::Suite:0x00005630ef4e1210 @name="StaticPagesControllerTest">, 7.334426987000029] test_should_get_contact#StaticPagesControllerTest (7.33s) ActiveRecord::NotNullViolation: ActiveRecord::NotNullViolation: RuntimeError: NOT NULL constraint failed: users.unique_name ERROR["test_should_get_help", #<Minitest::Reporters::Suite:0x00005630ef6b20d0 @name="StaticPagesControllerTest">, 7.4328920390000235] test_should_get_help#StaticPagesControllerTest (7.43s) ActiveRecord::NotNullViolation: ActiveRecord::NotNullViolation: RuntimeError: NOT NULL constraint failed: users.unique_name ERROR["test_password_reset", #<Minitest::Reporters::Suite:0x00005630ef9089d8 @name="UserMailerTest">, 7.544950696000001] test_password_reset#UserMailerTest (7.55s) ActiveRecord::NotNullViolation: ActiveRecord::NotNullViolation: RuntimeError: NOT NULL constraint failed: users.unique_name ERROR["test_account_activation", #<Minitest::Reporters::Suite:0x00005630efae16d8 @name="UserMailerTest">, 7.633968721000031] test_account_activation#UserMailerTest (7.63s) ActiveRecord::NotNullViolation: ActiveRecord::NotNullViolation: RuntimeError: NOT NULL constraint failed: users.unique_name 74/74: [===========] 100% Time: 00:00:07, Time: 00:00:07 Finished in 7.63661s 74 tests, 0 assertions, 0 failures, 74 errors, 0 skips ターミナルの出力です。 全部載せたかったのですが文字数制限があるのでのせれなかったです。
yachiyo

2021/08/28 08:55

またdevelomentとはdevelopment.sqlite3のファイルでよろしいでしょうか? User.where(unique_name: "example_user").count が0 である のでテストはどこのファイルに記述をすればよろしいでしょうか?
winterboum

2021/08/28 10:01

users_signup_test.rb のsetupの直後かな n\
yachiyo

2021/08/29 19:57

追記してみましたが同じ内容のエラーがもう一つ増えただけになりました。
winterboum

2021/08/29 22:39

そか、そうなりますね、 目的は、 テスト開始時に unique_name: "example_user" なデータがあるかどうか、ですので 取り敢えず setup をコメントアウトしてやってみて
yachiyo

2021/08/30 04:56

user_test.rbのsetupメソッドのunique_name: "example_user" をコメントアウトするのでよろしかったでしょうか? それでやってみましたが、エラーの内容は変わらなかったです。
winterboum

2021/08/30 06:08

いや、setup全体をコメントに。 2つ目以降のは別のエラーになりますが。
yachiyo

2021/08/30 20:10

全体をコメントアウトしてrails testしましたが エラーの内容が変わらずそのまま75このエラーが出てます。
winterboum

2021/08/31 02:49

setup はコメントアウトした User.where(unique_name: "example_user").count が0 である のテストでも ActiveRecord::NotNullViolation: ActiveRecord::NotNullViolation: RuntimeError: NOT NULL constraint failed: users.unique_name ですか?
yachiyo

2021/08/31 20:01

全部 ["test_where_users.unique_name", #<Minitest::Reporters::Suite:0x000055c1ab6cbe58 @name="UsersSignupTest">, 7.638853791999992] test_where_users.unique_name#UsersSignupTest (7.64s) ActiveRecord::NotNullViolation: ActiveRecord::NotNullViolation: RuntimeError: NOT NULL constraint failed: users.unique_name になっています。
winterboum

2021/08/31 22:28

このエラーは NotNullViolation ですから、必須の項目が nill のまま saveとかcreateとかしているというものです。 もしかして見てるテストが違うかな。models/user_test.rb ではない?
yachiyo

2021/09/01 20:11

models/user_test.rbを見ています。
yachiyo

2021/09/01 20:18

users.ymlのファイルで michael: name: Michael Example email: michael@example.com password_digest: <%= User.digest('password') %> admin: true activated: true activated_at: <%= Time.zone.now %> unique_name: michael_example archer: name: Sterling Archer email: duchess@example.gov password_digest: <%= User.digest('password') %> activated: true activated_at: <%= Time.zone.now %> unique_name: archer_example lana: name: Lana Kane email: hands@example.gov password_digest: <%= User.digest('password') %> activated: true activated_at: <%= Time.zone.now %> unique_name: lana_example malory: name: Malory Archer email: boss@example.gov password_digest: <%= User.digest('password') %> activated: true activated_at: <%= Time.zone.now %> unique_name: malory_example <% 30.times do |n| %> user_<%= n %>: name: <%= "User #{n}" %> email: <%= "user-#{n}@example.com" %> password_digest: <%= User.digest('password') %> activated: true activated_at: <%= Time.zone.now %> unique_name: <%= "example_#{n}" %> <% end %> non_activated: name: Non Activated email: non_activated@example.gov password_digest: <%= User.digest('password') %> activated: false activated_at: <%= Time.zone.now %> unique_name: non_activated ←ここに追記したら テストが通りました。 どういうことでしょうか?
winterboum

2021/09/01 22:50

2021/08/28 17:53 に載せていただいた出力読み直すと、先頭が ERROR["test_login_without_remembering", # ですが login_without_remembering というテストは models/user_test.rb には見当たりません。その後の方にも layout とか modelsらしくないテスト名が。controllerのテストにみえますが。
yachiyo

2021/09/03 08:10

文字制限がかかっている為、先頭の方をカットしています。 users.yml.rbの方に追記したらエラー表示がひとつもなくなったので そこに本来なら記入しなくてはいけなかったってことでしょうか?
winterboum

2021/09/03 10:18

unique_name: non_activated ←ここに追記したら これなしだったので 必須の項目が無いため non_activated: の作成でエラーになってました
yachiyo

2021/09/04 09:43

必須項目だったのですね! 有難うございました。
winterboum

2021/09/04 11:00

必須だって、あなたが model に定義しているではないですか!!
yachiyo

2021/09/04 23:20

あ、そっか!そうでした!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問