お世話になっております。
informationモデルのnameというカラムにデータを保存する際、選択したチェックボックスのvalue値を配列として保存しました。
レコード保存結果をチェックボックスの値ごとにわけて表示したいのですが、modelの検索で配列をうまくとることができません。どのように検索すべきかご教授ください。
以下記載
#app/views/information/_form.html.erb
<div class="field"> <%= f.label :名前 %><br> <%= f.check_box :name, {multiple: true, checked: @information.name.include?('cat')}, 'cat', nil %>cat <%= f.check_box :name, {multiple: true, checked: @information.name.include?('nora')}, 'nora', nil %>nora-cat <%= f.check_box :name, {multiple: true, checked: @information.name.include?('dog')}, 'dog', nil %>dog </div>
#app/models/information.rb
class Information < ActiveRecord::Base def name=(value) str = "" value.each do |val| str += val.to_s + "/" end rslt = str.empty? ? nil : (str) write_attribute(:name, rslt) end def name read_attribute(:name).to_s.split('/') end end
レコード内容をinfojsonにjson形式で取得
#app/controllers/infojson_controller.rb
class InfojsonController < ApplicationController def index @information = Information.all #←変更はここ? response.headers['Access-Control-Allow-Origin'] = '*' response.headers['Access-Control-Allow-Methods'] = 'OPTIONS, GET, POST, PUT, DELETE' response.headers['Access-Control-Request-Method'] = '*' response.headers[''] = '' #クロスドメイン対策 render :json => @information.order("date DESC")#日付でならべたい end end
吐き出されるjsonはこんな感じ
[ { "id": 1, "name": [ "cat", "dog" ], "date": "2015-10-23", "img_name": "http://test.jpg", "text": "テスト1", "link_url": "https://www.google.co.jp/", }, { "id": 2, "name": [ "nora", "dog" ], "date": "2015-10-22", "img_name": "http://test.jpg", "text": "テスト2", "link_url": "", },
たとえば上記で”name”に”nora”が含まれた場合のレコードだけを取りたいのです。
よろしくお願いします。
参考 リンク内容
モデルを保存するあたりでどのような事をしているのか、表示したい内容はどのようなものなのか、もう少し具体的に、ソース付きで例示していただけると、答えられるかもしれません。
回答1件
あなたの回答
tips
プレビュー