質問するログイン新規登録

回答編集履歴

2

K

2017/03/06 05:51

投稿

moke
moke

スコア2241

answer CHANGED
@@ -42,7 +42,7 @@
42
42
  <%= f.search_field :place_region_cont %>
43
43
  <%= f.search_field :place_prefecture_cont %>
44
44
  <%= f.search_field :place_city_cont %>
45
- serach
45
+ <%end%>
46
46
  ```
47
47
  リンクなら
48
48
  ```ruby

1

変更

2017/03/06 05:51

投稿

moke
moke

スコア2241

answer CHANGED
@@ -10,9 +10,49 @@
10
10
  都道府県を入力しなかったり、字が間違っていたり。
11
11
  入力のブレも存在します。
12
12
 
13
+ どうも管理者が入力するようなので具体的なコードを書くと
13
- ユーザーなら、携帯のGPSから住所取得たり、したいで
14
+ まずransackというgem導入す。
15
+ 地方(region)・都道府県(perfecture)・地域(city)
14
- お店側ら、最低も郵便番号から、住所が入るよしたほうがいと思います。
16
+ こん感じしょかcityは六本木エリアとか漠然としたものを想像しています。
17
+ で、教科書通りならregion modelとperfecture modelとcity modelを作るのですが。
18
+ cityをどんだけ細かくするかにもよりますが、検索時のjoinのコストを考えると、下手な正規化を行わず。
19
+ tableは places id,region:string,perfecture:string,city:string)
20
+ |id|region|perfecture|city|
21
+ |:--|:--|:--:|--:|
22
+ |1|関東|東京都|六本木|
23
+ |2|関東|東京都|新宿|
15
24
 
25
+ で十分かと思います。
26
+ place has_many: :shops
27
+ shop belongs_to: place
28
+ みたいにしてplace_idをshopにもたせて
29
+ ```ruby
30
+ shops_controller.rb
31
+ def index
32
+ @q=Shop.search(params[:q])
33
+ @shops=@q.result
34
+ ~
35
+ end
36
+ ```
37
+ として
38
+ サーチフォームなら
39
+ ```ruby
40
+ _serach.html.erb
41
+ <%= search_form_for @q ,:url=>{:controller=>"shops",:action=>"index"} do |f| %>
42
+ <%= f.search_field :place_region_cont %>
43
+ <%= f.search_field :place_prefecture_cont %>
44
+ <%= f.search_field :place_city_cont %>
45
+ serach
46
+ ```
47
+ リンクなら
48
+ ```ruby
49
+ <%= link_to '東京都',{:controller=>"shops",:action=>"index",:q=>{:place_prefecture_cont=>URI.escape('東京都')}%>
50
+ ```
16
- せよ、入力をどうるかを考えて初めて具体的な設計ができると思います。
51
+ みたいな感じにすればいいと思います。
52
+ URI.escapeはなくてもいいかもしれませんが念のため
53
+ controllerの一番上に
54
+ require 'uri'
55
+ と追記してください
17
56
 
57
+
18
58
  参考になれば。