0

営業時間を含む曜日ごとの列を持つデータベースがあります。ビジネスが休業する日は、その列のテーブルにデータがありません。

私の目標は、このデータを 1 日ごとに読み取り、次のようなものを表示することです。

Monday: 8am - 5pm
Tuesday: 8am - 5pm
Friday: 8am - pm

営業していない日を飛ばします。私のコントローラーには、インデックスメソッドがあります。

    def index
        @locations = Location.all
    end

場所を受け入れる別のメソッドとともに:

    def gettimes(location)
    @campus = Location.where(:name => 'Tennille')
        sunday = @campus.sunday
        monday = @campus.monday
        tuesday = @campus.tuesday
        wednesday = @campus.wednesday
        thursday = @campus.thursday
        friday = @campus.friday
        saturday = @campus.saturday

        if @campus.sunday.empty
            @hours += "Sunday: #{sunday}<br />"
        end
        if @campus.monday.empty
            @hours +=  "Monday: #{monday}<br />"
        end
        if @campus.tuesday.empty
            @hours +=  "Tuesday: #{tuesday}<br />"
        end
        if @campus.wednesday.empty
            @hours +=  "Wednesday: #{wednesday}<br />"
        end
        if @campus.thursday.empty
            @hours +=  "Thursday: #{thursday}<br />"
        end
        if @campus.friday.empty
            @hours +=  "Friday: #{friday}<br />"
        end
        if @campus.saturday.empty
            @hours +=  "Saturday: #{saturday}<br />"
        end

        puts @hours
    end

ビューに結果を出力することは言うまでもなく、このメソッドを呼び出す方法について完全に途方に暮れています。

私のビューは、次のようにデータベース エントリを実行します。

    <% @locations.each do |location| %>
    <%= location.etc %>

文字列の連結を正しく行っているかどうかさえわからないので、あなたが提供できる助けがあれば大歓迎です!

4

1 に答える 1

1

ApplicationHelper.rb にメソッドを作成します

def show_time_board(location)
  board = ""
  ["sunday", "monday", "tuesday", "wednesday", "thursday", "friday", "saturday"].each do |day_of_the_week|
    board += "#{day_of_the_week.capitalize}: #{location.send(day_of_the_week)}<br />" if location.send(day_of_the_week).present?
  end
  board
end

そしてビューでは

<% @locations.each do |location| %>
  <%= show_time_board(location).html_safe %>
<% end %>

そして、ul と li を html タグとして使用する必要があります。

于 2013-06-13T21:21:30.403 に答える