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

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

新規登録して質問してみよう
ただいま回答率
85.54%
Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Ruby on Rails

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

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

Q&A

1回答

888閲覧

一部投稿できない 解決

8877

総合スコア0

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Ruby on Rails

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

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。

0グッド

0クリップ

投稿2022/01/10 17:16

前提・実現したいこと

ツイッターのようなWebサイトを製作していますが、一部投稿されたものがでません。
エラーの画面は表示されないのですが、
一つのテーブルにカラムが2個あり、countryの方はテーブル制作時に、detailの方は後から付けました。そのうちのcountryのものが投稿したはずなのに表示されません。
コマンドプロンプトでrails cと入力したところ、投稿したはずのカラムのところがnilになっています。

イメージ説明

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

エラーメッセージ

該当のソースコード

app/models/post.rb

class Post < ApplicationRecord end

20108091907/create/posts.rb

class CreatePosts < ActiveRecord::Migration[6.1] def change create_table :posts do |t| t.text :country t.timestamps end end end

20220108092245_add_title_to_posts.rb

class AddTitleToPosts < ActiveRecord::Migration[6.1] def change add_column :posts, :detail, :text end end

confing/routes.rb

post 'posts' => 'posts#create'

アクション posts_contoroller.rb

def create tweet = Post.new(tweet_params) if tweet.save redirect_to :action => "index" else redirect_to :action => "new" end end def create tweet = Post.new(tweet_params) if tweet.save redirect_to :action => "index" else redirect_to :action => "new" end end private def tweet_params params.require(:post).permit(:country) end private def tweet_params params.require(:post).permit(:detail) end

db/schema.rb

ActiveRecord::Schema.define(version: 2022_01_08_092245) do create_table "posts", force: :cascade do |t| t.text "country" t.datetime "created_at", precision: 6, null: false t.datetime "updated_at", precision: 6, null: false end end ActiveRecord::Schema.define(version: 2022_01_08_092245) do create_table "posts", force: :cascade do |t| t.text "detail" t.datetime "created_at", precision: 6, null: false t.datetime "updated_at", precision: 6, null: false end end

コマンドプロンプト rails db:migrate:status

C:\Users\kuruchan\non>rails db:migrate:status database: db/development.sqlite3 Status Migration ID Migration Name -------------------------------------------------- up 20220108091907 Create posts up 20220108092245 Add title to posts

コマンドプロンプト rails c

C:\Users\kuruchan\non>rails c Loading development environment (Rails 6.1.4.4) irb(main):001:0> Post.all (1.3ms) SELECT sqlite_version(*) Post Load (0.3ms) SELECT "posts".* FROM "posts" => [#<Post:0x000002ec795b8750 id: 40, country: nil, created_at: Mon, 10 Jan 2022 15:59:20.794544000 UTC +00:00, updated_at: Mon, 10 Jan 2022 15:59:20.794544000 UTC +00:00, detail: nil>, #<Post:0x000002ec751e7dc8 id: 41, country: nil, created_at: Mon, 10 Jan 2022 16:56:54.162285000 UTC +00:00, updated_at: Mon, 10 Jan 2022 16:56:54.162285000 UTC +00:00, detail: "日本">] irb(main):002:0> l

試したこと

解決策を探したが、よくわからなかった。

補足情報(FW/ツールのバージョンなど)

Windows11
Windowsを直に環境構築
Ruby on Rails

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

わからんことがひとつ
同じversionのsdb/schemaに同じtable定義があり、しかもその内容が異なるのですが。
最終的なtableの内容はどちらがただしい?

それはさておき、
仮に table "posts" に"country" と "detail" があるとしても。
def tweet_params が二回書かれています。この場合最後に読み込まれた定義がつかわれます。
つまり detailしかsaaveされません。

投稿2022/01/10 21:35

winterboum

総合スコア23267

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

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

8877

2022/01/11 01:05

sdbではなくdbですか?
8877

2022/01/11 01:20

``` を ``` private def tweet_params params.require(:post).permit(:country) params.require(:post).permit(:detail) end ``` にすることですか?
winterboum

2022/01/11 01:45

「sdbではなくdbですか?」 これ意味がわかりません params.require(:post).permit(:country, :detail) と一度に書きます
8877

2022/01/11 03:48

解決できました。ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.54%

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

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

質問する

同じタグがついた質問を見る

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

Ruby on Rails

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

コマンドプロンプト

コマンドプロンプト(cmd.exe)はMicrosoftによって提供されているコマンドラインインタプリタです。OS/2・Windows CE・Windows NTで使用可能です。