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

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

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

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

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

Q&A

解決済

2回答

4970閲覧

Rails4 コンボボックスの動的表示

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby on Rails

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

Ajax

Ajaxとは、Webブラウザ内で搭載されているJavaScriptのHTTP通信機能を使って非同期通信を利用し、インターフェイスの構築などを行う技術の総称です。XMLドキュメントを指定したURLから読み込み、画面描画やユーザの操作などと並行してサーバと非同期に通信するWebアプリケーションを実現することができます。

0グッド

0クリップ

投稿2014/12/06 14:52

参考サイトを見ながらコンボボックスの動的表示を作っているのですが、子カテゴリの出し方がわかりません

参考サイト
<参考サイト>

lang

1 def index 2 @countries = Country.all 3 @cities = City.where("country_id = ?", Country.first.id) 4 end 5 6 def show 7 @city = City.find_by("id = ?", params[:trip][:city_id]) 8 end

上記の部分を自分のデータベースに置き換えて記述する方法がわかりません
.allとすると親と子全てのカテゴリが表示されるので、下記のように書きました。子カテゴリの記述方法はなんとすれば良いのでしょうか

lang

1def new 2 @item = Item.new 3 @parent = Category.where("parent_id = ?", 1)#親カテゴリ 4 @childs = Category.where("parent_id = ?", Category.first.id)#子カテゴリをだしたいが・・ 5end 6

<参考サイト>

lang

1<%= form_for :trip, url: {action: "show"}, html: {method: "get"} do |f| %> 2 <%= f.select :country_id, options_for_select(@countries.collect { |country| 3 [country.name.titleize, country.id] }, 1), {}, { id: 'countries_select' } %>#1が何を指すのかわからない 4 <%= f.select :city_id, options_for_select(@cities.collect { |city| 5 [city.name.titleize, city.id] }, 0), {}, { id: 'cities_select' } %>#0が何を指すのかわからない

id | parent_id | name |
+----+-----------+-----------------------------
| 1 | | root
| 2 | 1 | メンズ
| 3 | 1 | レディース
| 4 | 1 | キッズ
| 5 | 1 | インテリア/家具
| 6 | 1 | 家電製品
| 7 | 1 | 本
| 8 | 1 | チケット
| 9 | 1 | おもちゃ
| 10 | 1 | エンターテインメント
| 11 | 1 | スポーツ
| 12 | 2 | トップス
| 13 | 2 | アウター
| 14 | 2 | パンツ
| 15 | 2 | 靴
| 16 | 2 | 帽子
| 17 | 2 | その他
| 18 | 3 | トップス
| 19 | 3 | アウター
| 20 | 3 | パンツ

Rails 一覧表示の汎化

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

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

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

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

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

guest

回答2

0

ベストアンサー

https://github.com/katoy/rails4_myshop
にサンプルコードを置きました。

カテゴリーの表示方法は3つ用意しています。
1. scaffold で生成されたもの。
2. combobox での選択。(第2カテゴリーの内容をダイナミックに変更して表示する)
3. tree 形式で表示する。
これら3つの表示画面のスクリーンショットを以下においています。
https://github.com/katoy/rails4_myshop/tree/master/screenshots

サンプルコードを github から clone した後, 次のようにして起動することができるはずです。
$ bundle install
$ rake db:drop
$ rake db:create
$ rake db:migrate
$ rale db:fixtures:load
$ rails s

  • カテゴリーデータは test/fixturs/categories.yml に設定値が書いてあります。

  • combobox での選択 に関係するファイル、メソッドは以下のものです。
    app/controller/categories_controller.rb
    #select # select 画面のアクションメソッド
    #list # 第2カテゴリーの内容を返すメソッド。ajax で呼び出す。
    app/views/categies/select.html.erb
    (ajax 呼び出しの後の combobox の内容設定は javascrit, erb を使わずに,
    json でデータを受け取って、それを javascriptを使って直接 設定しています。)

  • tree 表示 に関係するファイル、メソッドは以下のものです。
    app/assets/javascript/tree/*
    app/controller/categories_controller.rb
    #tree
    app/views/categies/tree.html.erb

投稿2014/12/07 04:09

katoy

総合スコア22324

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

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

退会済みユーザー

退会済みユーザー

2014/12/07 23:21

早速今晩やってみます!ありがとうございます。
退会済みユーザー

退会済みユーザー

2014/12/08 11:41

itemのnewアクションでも動的に動かすことができました。 Create itemを押してもアイテムを作成できなくなりました。
退会済みユーザー

退会済みユーザー

2014/12/08 14:18

アイテムにcategory_idが挿入できません。。
guest

0

参考記事では、親カテゴリのセレクトボックスを変更した時に、子セレクトボックスで使う値を取得するための非同期リクエストを投げて、レスポンスとしてjsを返して、子セレクトボックスの値を書き換えています。

"何"がわからないのですか?
質問を見る限りは、参考記事を全体的に理解ができていないというように見えます。
何を知りたいのか明確にしてください。

投稿2014/12/06 05:10

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2014/12/06 17:40

参考サイトにある ------------------------------------------------------------------------------------------ def index @countries = Country.all @cities = City.where("country_id = ?", Country.first.id) end ------------------------------------------------------------------------------------------ の部分を自分のダータベースの場合に どのように記述すれば良いのかがわかりません
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問