スポンサーリンク

Railsで/blog/:year/:month/:dayで日付の投稿を複数表示させたい(2)

(環境)
Rails4.2.2

# config/routes.rb

[sourcecode language="bash" collapse="false"]
  get "/operations/:year:month:day" => "operations#list", :constraints => { :year => /[12][0-9]{3}/, :month => /[01][0-9]/, :day => /[0-3][0-9]/ }
[/sourcecode]

 

# app/controllers/operations_controller.rb

[sourcecode language="ruby"]
  def list
    @operations = Operation.all
    d = Date.new(params[:year].to_i, params[:month].to_i ,params[:day].to_i)
    @operations = @operations.where(opedate: d)
  end
[/sourcecode]

 

# app/views/operations/list.html.erb

[sourcecode language="bash" collapse="false"]
<p id="notice"><%= notice %></p>



<table class="table table-striped table-hover table-condensed">
  <thead>
    <tr>
      <th nowrap>入外</th>
      <th>入院日</th>
      <th>手術日</th>
      <th width="5">定</th>
      <th width="5">麻</th>
      <th width="5">齢</th>
      <th width="5">性</th>
      <th>ID</th>
      <th nowrap>患者氏名</th>
      <th>眼</th>
      <th nowrap>病名</th>
      <th>術式</th>
      <th nowrap>術者</th>
      <th nowrap>助手</th>
      <th nowrap>担当</th>
      <th colspan="2"></th>
    </tr>
  </thead>

  <tbody>
    <% @operations.each do |operation| %>
      <tr>
        <td><%= operation.inout %></td>
        <td>
        	<%#= operation.admissiondate %>
        	<% if operation.admissiondate.present? %>
          <%= operation.admissiondate.strftime("%m/%d(#{%w(日 月 火 水 木 金 土)[operation.admissiondate.wday]})") %>
          <%#= post.created_at.strftime("%Y/%m/%d(#{%w(日 月 火 水 木 金 土)[post.created_at.wday]})") %>
          <% end %>
        </td>
        <td>
        	<%#= operation.opedate %>
          <% if operation.opedate.present? %>
          <%= operation.opedate.strftime("%Y/%m/%d(#{%w(日 月 火 水 木 金 土)[operation.opedate.wday]})") %>
          <%#= post.created_at.strftime("%Y/%m/%d(#{%w(日 月 火 水 木 金 土)[post.created_at.wday]})") %>
          <% end %>
        </td>
        <td><%= operation.special %></td>
        <td><%= operation.anesthesia %></td>
        <td>
  				<% begin %> 
    				<%= (Date.today.strftime("%Y%m%d").to_i - operation.birthdate.strftime("%Y%m%d").to_i) / 10000 %> 
  				<% rescue %> 
    				<%= 200 %> 
  				<% end %>         	
        </td>
        <td><%= operation.sex %></td>
        <td><%= operation.patientID %></td>
        <td><%= operation.patientname.truncate(6) %></td>
        <td><%= operation.eye %></td>
        <td nowrap><%= operation.disease1.truncate(8) %></td>
        <td nowrap><%= operation.ope1.truncate(8) %></td>
        <td><%= operation.operator %></td>
        <td><%= operation.assist %></td>
        <td><%= operation.inpatientdr %></td>
        <td nowrap><%= link_to '編集', edit_operation_path(operation) %></td>
        <td nowrap><%= link_to '削除', operation, method: :delete, 
        					data: { confirm: 'Are you sure?' } %></td>
      </tr>
    <% end %>
  </tbody>
</table>

<br>

<%#= link_to 'New Operation', new_operation_path %>
<%= button_tag type: 'button', onclick: "link_to('#{new_operation_path}')", 
			class: "btn btn-primary"  do %>
  <%= content_tag :span, "新規登録", class: "glyphicon glyphicon-plus" %>
<% end %>

[/sourcecode]

 

ブラウザで、

localhost:3000/operations/20160722

と入力すると、opedateが2016-07-22のリストが表示される。

スポンサーリンク