Permalink
Browse files

Add index view helper

  • Loading branch information...
1 parent 7cbda81 commit d0b1a761226b13722adda24036aa822172fd89f2 @holysugar committed Apr 11, 2012
@@ -1,8 +0,0 @@
-module ResourceFormHelper
- def resource_form(resource, options = {}, &block)
- render 'resource_form', options.reverse_merge(:resource => resource, :url => nil, :builder => nil)
- end
-end
-
-ApplicationHelper.send(:include, ResourceFormHelper)
-
@@ -0,0 +1,18 @@
+module ResourceTemplatesHelper
+ def resource_form(resource, options = {}, &block)
+ render 'resource_form', options.reverse_merge(:resource => resource, :url => nil, :builder => nil)
+ end
+
+ def resources_index(resources, options = {}, &block)
+ if resources.present?
+ resource_class = resources.first.class
+ render 'resources_index', options.reverse_merge(
+ :resources => resources, :resource_class => resources.first.class)
+ else
+ content_tag(:p, t(:'view.display_nothing'))
+ end
+ end
+end
+
+ApplicationHelper.send(:include, ResourceTemplatesHelper)
+
@@ -1,5 +1,5 @@
= semantic_form_for resource, :url => url, :builder => builder do |f|
- -# don't be lazy! :(
+ -# FIXME don't be lazy! :(
= f.inputs
= f.actions
@@ -0,0 +1,19 @@
+-# resource_class = @items.first.class
+-# resources = @items
+
+%table.table.table-bordered.table-striped
+ %thead
+ %tr
+ -# FIXME choose what attributes to display in view model
+ - resource_class.attribute_names.each do |key|
+ %th= resource_class.human_attribute_name(key)
+ %th{cols: 3}
+ %tbody
+ - resources.each do |o|
+ %tr
+ - resource_class.attribute_names.each do |key|
+ %td= o.send(key)
+ %td= link_to t('view.show'), o
+ %td= link_to t('view.edit'), [:edit, o]
+ %td= link_to t('view.destroy'), o, :method => :delete, :confirm => t('view.destroy_confirm', :default => 'Are you sure?')
+
@@ -1,27 +1,5 @@
%h1 Listing items
-%table
- %tr
- %th Name
- %th Price
- %th Description
- %th Kind
- %th Enabled
- %th
- %th
- %th
-
- - @items.each do |item|
- %tr
- %td= item.name
- %td= item.price
- %td= item.description
- %td= item.kind
- %td= item.enabled
- %td= link_to 'Show', item
- %td= link_to 'Edit', edit_item_path(item)
- %td= link_to 'Destroy', item, :confirm => 'Are you sure?', :method => :delete
-
-%br
+= resources_index @items
= link_to 'New Item', new_item_path
@@ -1,30 +1,58 @@
ja:
+ app:
+ # page_title_helper に利用される
+ # 各ページの title 要素に設定される
+ name: Rails素振り
+
+ # オリジナル。汎用的に view で利用するもの。
+ # see views/application/*
+ view:
+ show: 詳細
+ edit: 編集
+ destroy: 削除
+ destroy_confirm: "削除してもよろしいですか?"
+ display_nothing: 表示するものがありません
+
+ # formtastic で利用されるもの
formtastic:
titles:
items_details: アイテム管理
- # ↓これはフォームのラベル表示用で、 ar のものを上書きできる
+ # フォームのラベル表示用で、 ar のものを上書きできる
labels:
title: たいとる
item:
name: 表示名
+ # フォームのヒント表示用
hints:
item:
name: ヒント日本語OK
kind: いまのところ 1〜3 のみ
+ # フォームの placeholder 表示用。formtastic 2.2.0 必要
placeholders:
item:
name: "@holysugar"
description: メモ
price: 12345
+ # フォームのボタン/リンクの文言
actions:
create: "%{model}の作成"
update: 変更の適用
reset: リセット
cancel: キャンセルして戻る
+ # すべての activemodel, activerecord で共通にできる属性名称
+ # ActiveModel.human_attribute_names で利用される
+ attributes:
+ id: ID
+ created_at: 作成日時
+ updated_at: 更新日時
+
+ # ActiveRecord::Base.human_attribute_names で利用される
activerecord:
+ # model の名前
models:
item: アイテム
+ # 各モデルの属性の名前
attributes:
item:
name: 名前
@@ -33,6 +61,11 @@ ja:
kind: 種別
enabled: 有効フラグ
+ # TranslationHelper#translate で利用される
items:
+ # ItemsController 共通の title
title: アイテム管理
+ new:
+ # ItemsController#new のみの title
+ title: アイテム管理(新規作成)

0 comments on commit d0b1a76

Please sign in to comment.