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

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

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

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

Ruby on Rails

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

Q&A

解決済

2回答

1219閲覧

膨大な量のページを作る手間を省きたい

828kk88

総合スコア61

Ruby

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

Ruby on Rails

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

0グッド

0クリップ

投稿2017/01/28 10:41

編集2017/01/28 10:42

現在Railsで掲示板のようなサービスを作っていて、掲示板に投稿するときに性別、年代、地域、などのプロフィールを入力できるようになっています。

そこで投稿をプロフィール毎に分けたページを作りたいのですが問題にぶつかってしまいました。

説明しづらいので具体的にいますと
例えば「20代東京の男性」の投稿を表示させることは出来るのですが、「30代東京の男性」、「40代東京の男性」、「50代東京の男性」、「20代東京の女性」、、、、、、とひとつひとつ手作業で書いてページを作っていくのはとても手間です。

年代は10〜50代で選べるので
2×5×47通りのページを作らなければいけないわけです

それではとても大変なので何か良い解決策や、いい具合にやってくれるgemなどがありましたらぜひ教えていただきたいです。

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

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

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

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

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

gouf

2017/01/28 11:54 編集

たとえば「p (10..50).step(10).map { |age| [ ["#{age}代", '男性'], ["#{age}代", '女性'] ] }.flatten(1)」みたいな処理で組み合わせをつくって、その該当データをDBから引っ張ってくるイメージですか?
moke

2017/01/31 10:50

Ruby on Railsの理念は同じ(同じような)コードを2度書かないですよ
guest

回答2

0

ベストアンサー

Ruby on Railsの理念は同じ(同じような)コードを2度書かないです。
partial化と
gem ransack
をお勧めします。
これは検索用のgemですが
_search.html.erb

ruby

1<%= search_form_for @q ,url: {:controller=>"hoge",:action=>"index"} do |f| %> 2年齢 3<%= f.select :nenreikubun_id_eq,@nenreikubun,:include_blank=>true %> 4性別 5<%= f.select :seibetu_id_eq ,@seibetu,:include_blank=>true%> 6出身県 7<%= f.select :todouhuken_eq,@todouhuken,:include_blank=>true %> 8 9<%end%> 10

hoge_controller.rb

ruby

1def index 2@q=Hoge.search(params[:q]) 3@hoge=@q.result 4@nenreikubun=NenreiKubun.pluck(:name,:id) 5@seibetu=Seibetu.pluck(:name,:id) 6@todouhuken=Todouhuken.pluck(:name,:id) 7end

現在のindex.html.erbを
_index.html.erbに変えて
index.html.erb

ruby

1<%= render :partial=>'search' %> 2<%= render :partial=>'index' %>

とするだけで828kk88
さまのやりたいことはできたも当然です。

投稿2017/01/31 11:14

編集2017/01/31 11:16
moke

総合スコア2241

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

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

0

Ruby はやっていませんが。

ページを生成するだけでいいのでしょうか?

もしそうなら、私なら

C/C++, Java 等のような言語 ( Rubyでもいいですが、私は使えないので。 ) で、

HTMLファイルを生成しますね。

"ファイルの書き込み" を利用して テキストファイルとして書き込んで、それをリネーム。

( *.txt -> *.html )

こうすれば可能では?

で、ファイル名は

たとえば

年齢 + エリア名 + 性別 + ".html"

からなるとします。

それなら

20tokyomale.html ( 20代で東京都在住の男性 )

とできますし。

投稿2017/01/30 02:52

BeatStar

総合スコア4958

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問