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

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

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

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

Haml

Haml(HTML abstraction markup language)は、HTML/XHTMLを効率的に記述するためのマークアップ言語および記法です。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

1回答

810閲覧

【3週間ぐらい解決しません】2つのセレクトボックスのデータを保存したい

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby on Rails 5

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

Haml

Haml(HTML abstraction markup language)は、HTML/XHTMLを効率的に記述するためのマークアップ言語および記法です。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2020/09/21 08:21

前提・実現したいこと

個人アプリを開発しており、コンセプトはスノボー版インスタグラムを作っています。

実現したいことは、新規投稿する時に、スノボーのカテゴリーとブランドをデータベースに登録させたいです。
なお、現状は、セレクトボックスが動的に変化できるように実装できていますが、データベースには登録できず、
コントローラーにもまだカテゴリーとブランドに関して未記入の状態です。

以下は新規投稿画面です。
イメージ説明
イメージ説明

該当のソースコード

_form.html.haml(新規投稿のフォーム)

= form_for(@post) do |f| .field .field-label = f.label :title, "snowB" .field-input = f.text_field :title .field .field-label = f.label :appeal, "ココがポイント!" .field-input = f.text_area :appeal .field .field-label = f.label :image, "snowB写真" .field-input = f.attachment_field :image .field .field-label = f.label :category_id, "カテゴリーを選ぶ" .field-input = render "homes/select" .field-input = render "homes/sub_select" .actions = f.submit "投稿する", class: "btn"

render "homes/select"のソースコード

%label.seachBox-listname snowBを選ぶ %select.selectBoxLists{id: "parent", name: "snowB"} %option{value: "", class: "msg"} snowBを選択 %option{value: "snowboard"} ボード %option{value: "snowboots"} ブーツ %option{value: "binding"} ビンディング %option{value: "helmet"} ヘルメット %option{value: "goggle"} ゴーグル %option{value: "grove"} グローブ %option{value: "wear"} ウェア %option{value: "item"} アイテム

= render "homes/sub_select"のソースコードの一部分(長くなるため割愛)

%label.seachBox-listname ブランド %select.selectBoxLists{name: "ブランド", id: "children"} %option ブランドを選択 -# スノーボードのブランド %option{value: "BURTON", "data-val": 'snowboard'} BURTON %option{value: "K2", "data-val": 'snowboard'} K2 %option{value: "SALOMON", "data-val": 'snowboard'} SALOMON %option{value: "FLOW", "data-val": 'snowboard'} FLOW %option{value: "OGASAKA", "data-val": 'snowboard'} OGASAKA %option{value: "RIDE", "data-val": 'snowboard'} RIDE %option{value: "ROME", "data-val": 'snowboard'} ROME %option{value: "ALLIAN", "data-val": 'snowboard'} ALLIAN %option{value: "YONEX", "data-val": 'snowboard'} YONEX %option{value: "CAPiTA", "data-val": 'snowboard'} CAPiTA %option{value: "NOVEMBER", "data-val": 'snowboard'} NOVEMBER %option{value: "elan", "data-val": 'snowboard'} elan %option{value: "Artistic", "data-val": 'snowboard'} Artistic %option{value: "BC Stream", "data-val": 'snowboard'} BC Stream %option{value: "others1", "data-val": 'snowboard'} その他

postコントローラー(投稿のコントローラーです)

class PostsController < ApplicationController before_action :authenticate_user!, except: [:index] def index @posts = Post.all @categories = Category.all end def show @post = Post.find(params[:id]) @comment = Comment.new @comments = @post.comments.includes(:user) @categories = Category.all @posts = Post.where(category: @post.category_id) end def new @post = Post.new @category_parent_array = Category.where(ancestry: nil).pluck(:name) end def create @post = Post.new(post_params) @post.user_id = current_user.id @category_parent_array = Category.where(ancestry: nil).pluck(:name) if @post.save redirect_to post_path(@post), notice: '投稿されました' else render :new, alert: '投稿できませんでした' end end def edit @post = Post.find(params[:id]) if @post.user != current_user redirect_to posts_path, alert: '不正なアクセスです' end end def update @post = Post.find(params[:id]) if @post.update(post_params) redirect_to post_path(@post), notice: '投稿が更新されました' else render :edit end end def destroy post = Post.find(params[:id]) post.destroy redirect_to posts_path end private def post_params params.require(:post).permit(:title, :appeal, :image, :category_id).merge(user_id: current_user.id) end end

postのマイグレーションファイル

class CreatePosts < ActiveRecord::Migration[5.0] def change create_table :posts do |t| t.integer :user_id, null:false t.string :title, null:false t.text :appeal, null:false t.string :image_id, null:false t.integer :category_id t.timestamps end end end

かなり長期間悩んでいるため、具体的なコードと手順をご教示いただけると大変助かります。

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

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

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

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

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

no1knows

2020/09/21 11:14 編集

> 3週間ぐらい解決しません > コントローラーにもまだカテゴリーとブランドに関して未記入の状態です。 3週間、試行錯誤したことは何もないのでしょうか?
guest

回答1

0

log を確認してみてください
"category_id" => なんとか が params["post"] => {} の中にないでしょう。
だからcategoryが登録されません

投稿2020/09/22 02:15

winterboum

総合スコア23567

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問