pager-resource_controller 1.0.20080513

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. data/LICENSE +22 -0
  2. data/README +276 -0
  3. data/Rakefile +55 -0
  4. data/TODO +1 -0
  5. data/generators/scaffold_resource/USAGE +29 -0
  6. data/generators/scaffold_resource/scaffold_resource_generator.rb +101 -0
  7. data/generators/scaffold_resource/templates/controller.rb +2 -0
  8. data/generators/scaffold_resource/templates/fixtures.yml +10 -0
  9. data/generators/scaffold_resource/templates/functional_test.rb +57 -0
  10. data/generators/scaffold_resource/templates/helper.rb +2 -0
  11. data/generators/scaffold_resource/templates/migration.rb +15 -0
  12. data/generators/scaffold_resource/templates/model.rb +2 -0
  13. data/generators/scaffold_resource/templates/old_migration.rb +13 -0
  14. data/generators/scaffold_resource/templates/shoulda_functional_test.rb +19 -0
  15. data/generators/scaffold_resource/templates/unit_test.rb +7 -0
  16. data/generators/scaffold_resource/templates/view__form.erb +6 -0
  17. data/generators/scaffold_resource/templates/view__form.haml +5 -0
  18. data/generators/scaffold_resource/templates/view_edit.erb +16 -0
  19. data/generators/scaffold_resource/templates/view_edit.haml +11 -0
  20. data/generators/scaffold_resource/templates/view_index.erb +22 -0
  21. data/generators/scaffold_resource/templates/view_index.haml +19 -0
  22. data/generators/scaffold_resource/templates/view_new.erb +12 -0
  23. data/generators/scaffold_resource/templates/view_new.haml +9 -0
  24. data/generators/scaffold_resource/templates/view_show.erb +9 -0
  25. data/generators/scaffold_resource/templates/view_show.haml +9 -0
  26. data/init.rb +6 -0
  27. data/install.rb +1 -0
  28. data/lib/resource_controller.rb +11 -0
  29. data/lib/resource_controller/accessors.rb +76 -0
  30. data/lib/resource_controller/action_options.rb +28 -0
  31. data/lib/resource_controller/actions.rb +75 -0
  32. data/lib/resource_controller/base.rb +15 -0
  33. data/lib/resource_controller/class_methods.rb +22 -0
  34. data/lib/resource_controller/controller.rb +63 -0
  35. data/lib/resource_controller/failable_action_options.rb +17 -0
  36. data/lib/resource_controller/helpers.rb +28 -0
  37. data/lib/resource_controller/helpers/current_objects.rb +69 -0
  38. data/lib/resource_controller/helpers/internal.rb +59 -0
  39. data/lib/resource_controller/helpers/nested.rb +45 -0
  40. data/lib/resource_controller/helpers/urls.rb +124 -0
  41. data/lib/resource_controller/response_collector.rb +21 -0
  42. data/lib/urligence.rb +50 -0
  43. data/rails/init.rb +1 -0
  44. data/test/Rakefile +10 -0
  45. data/test/app/controllers/application.rb +7 -0
  46. data/test/app/controllers/cms/options_controller.rb +3 -0
  47. data/test/app/controllers/cms/products_controller.rb +2 -0
  48. data/test/app/controllers/comments_controller.rb +3 -0
  49. data/test/app/controllers/people_controller.rb +9 -0
  50. data/test/app/controllers/photos_controller.rb +10 -0
  51. data/test/app/controllers/posts_controller.rb +10 -0
  52. data/test/app/controllers/projects_controller.rb +3 -0
  53. data/test/app/controllers/somethings_controller.rb +3 -0
  54. data/test/app/controllers/tags_controller.rb +13 -0
  55. data/test/app/controllers/users_controller.rb +12 -0
  56. data/test/app/helpers/application_helper.rb +3 -0
  57. data/test/app/helpers/cms/products_helper.rb +2 -0
  58. data/test/app/helpers/comments_helper.rb +2 -0
  59. data/test/app/helpers/options_helper.rb +2 -0
  60. data/test/app/helpers/people_helper.rb +2 -0
  61. data/test/app/helpers/photos_helper.rb +2 -0
  62. data/test/app/helpers/posts_helper.rb +2 -0
  63. data/test/app/helpers/projects_helper.rb +2 -0
  64. data/test/app/helpers/somethings_helper.rb +2 -0
  65. data/test/app/helpers/tags_helper.rb +2 -0
  66. data/test/app/helpers/users_helper.rb +2 -0
  67. data/test/app/models/account.rb +3 -0
  68. data/test/app/models/comment.rb +3 -0
  69. data/test/app/models/option.rb +3 -0
  70. data/test/app/models/photo.rb +4 -0
  71. data/test/app/models/post.rb +3 -0
  72. data/test/app/models/product.rb +3 -0
  73. data/test/app/models/project.rb +2 -0
  74. data/test/app/models/something.rb +2 -0
  75. data/test/app/models/tag.rb +3 -0
  76. data/test/app/views/cms/options/edit.rhtml +17 -0
  77. data/test/app/views/cms/options/index.rhtml +20 -0
  78. data/test/app/views/cms/options/new.rhtml +16 -0
  79. data/test/app/views/cms/options/show.rhtml +8 -0
  80. data/test/app/views/cms/products/edit.rhtml +17 -0
  81. data/test/app/views/cms/products/index.rhtml +20 -0
  82. data/test/app/views/cms/products/new.rhtml +16 -0
  83. data/test/app/views/cms/products/show.rhtml +8 -0
  84. data/test/app/views/comments/edit.rhtml +27 -0
  85. data/test/app/views/comments/index.rhtml +24 -0
  86. data/test/app/views/comments/new.rhtml +26 -0
  87. data/test/app/views/comments/show.rhtml +18 -0
  88. data/test/app/views/layouts/application.rhtml +17 -0
  89. data/test/app/views/layouts/comments.rhtml +17 -0
  90. data/test/app/views/layouts/options.rhtml +17 -0
  91. data/test/app/views/layouts/people.rhtml +17 -0
  92. data/test/app/views/layouts/photos.rhtml +17 -0
  93. data/test/app/views/layouts/projects.rhtml +17 -0
  94. data/test/app/views/layouts/somethings.rhtml +17 -0
  95. data/test/app/views/layouts/tags.rhtml +17 -0
  96. data/test/app/views/people/edit.rhtml +17 -0
  97. data/test/app/views/people/index.rhtml +20 -0
  98. data/test/app/views/people/new.rhtml +16 -0
  99. data/test/app/views/people/show.rhtml +8 -0
  100. data/test/app/views/photos/edit.rhtml +17 -0
  101. data/test/app/views/photos/index.rhtml +20 -0
  102. data/test/app/views/photos/new.rhtml +16 -0
  103. data/test/app/views/photos/show.rhtml +8 -0
  104. data/test/app/views/posts/edit.rhtml +22 -0
  105. data/test/app/views/posts/index.rhtml +22 -0
  106. data/test/app/views/posts/new.rhtml +21 -0
  107. data/test/app/views/posts/show.rhtml +13 -0
  108. data/test/app/views/projects/edit.rhtml +17 -0
  109. data/test/app/views/projects/index.rhtml +20 -0
  110. data/test/app/views/projects/new.rhtml +16 -0
  111. data/test/app/views/projects/show.rhtml +8 -0
  112. data/test/app/views/somethings/edit.rhtml +17 -0
  113. data/test/app/views/somethings/index.rhtml +20 -0
  114. data/test/app/views/somethings/new.rhtml +16 -0
  115. data/test/app/views/somethings/show.rhtml +8 -0
  116. data/test/app/views/tags/edit.rhtml +17 -0
  117. data/test/app/views/tags/index.rhtml +20 -0
  118. data/test/app/views/tags/index.rjs +0 -0
  119. data/test/app/views/tags/new.rhtml +16 -0
  120. data/test/app/views/tags/show.rhtml +8 -0
  121. data/test/app/views/users/edit.rhtml +17 -0
  122. data/test/app/views/users/index.rhtml +20 -0
  123. data/test/app/views/users/new.rhtml +16 -0
  124. data/test/app/views/users/show.rhtml +8 -0
  125. data/test/config/boot.rb +45 -0
  126. data/test/config/database.yml +16 -0
  127. data/test/config/environment.rb +64 -0
  128. data/test/config/environments/development.rb +21 -0
  129. data/test/config/environments/test.rb +19 -0
  130. data/test/config/routes.rb +51 -0
  131. data/test/db/migrate/001_create_posts.rb +12 -0
  132. data/test/db/migrate/002_create_products.rb +11 -0
  133. data/test/db/migrate/003_create_comments.rb +13 -0
  134. data/test/db/migrate/004_create_options.rb +12 -0
  135. data/test/db/migrate/005_create_photos.rb +11 -0
  136. data/test/db/migrate/006_create_tags.rb +17 -0
  137. data/test/db/migrate/007_create_somethings.rb +11 -0
  138. data/test/db/migrate/008_create_accounts.rb +11 -0
  139. data/test/db/migrate/009_add_account_id_to_photos.rb +9 -0
  140. data/test/db/migrate/010_create_projects.rb +11 -0
  141. data/test/db/schema.rb +65 -0
  142. data/test/script/console +3 -0
  143. data/test/script/destroy +3 -0
  144. data/test/script/generate +3 -0
  145. data/test/script/server +3 -0
  146. data/test/test/fixtures/accounts.yml +7 -0
  147. data/test/test/fixtures/comments.yml +11 -0
  148. data/test/test/fixtures/options.yml +9 -0
  149. data/test/test/fixtures/photos.yml +9 -0
  150. data/test/test/fixtures/photos_tags.yml +3 -0
  151. data/test/test/fixtures/posts.yml +9 -0
  152. data/test/test/fixtures/products.yml +7 -0
  153. data/test/test/fixtures/projects.yml +7 -0
  154. data/test/test/fixtures/somethings.yml +7 -0
  155. data/test/test/fixtures/tags.yml +7 -0
  156. data/test/test/functional/cms/options_controller_test.rb +20 -0
  157. data/test/test/functional/cms/products_controller_test.rb +18 -0
  158. data/test/test/functional/comments_controller_test.rb +26 -0
  159. data/test/test/functional/people_controller_test.rb +34 -0
  160. data/test/test/functional/photos_controller_test.rb +128 -0
  161. data/test/test/functional/posts_controller_test.rb +34 -0
  162. data/test/test/functional/projects_controller_test.rb +18 -0
  163. data/test/test/functional/somethings_controller_test.rb +28 -0
  164. data/test/test/functional/tags_controller_test.rb +64 -0
  165. data/test/test/functional/users_controller_test.rb +24 -0
  166. data/test/test/test_helper.rb +12 -0
  167. data/test/test/unit/accessors_test.rb +91 -0
  168. data/test/test/unit/account_test.rb +7 -0
  169. data/test/test/unit/action_options_test.rb +66 -0
  170. data/test/test/unit/base_test.rb +11 -0
  171. data/test/test/unit/comment_test.rb +10 -0
  172. data/test/test/unit/failable_action_options_test.rb +50 -0
  173. data/test/test/unit/helpers/current_objects_test.rb +127 -0
  174. data/test/test/unit/helpers/internal_test.rb +88 -0
  175. data/test/test/unit/helpers/nested_test.rb +82 -0
  176. data/test/test/unit/helpers/urls_test.rb +71 -0
  177. data/test/test/unit/helpers_test.rb +25 -0
  178. data/test/test/unit/option_test.rb +10 -0
  179. data/test/test/unit/photo_test.rb +10 -0
  180. data/test/test/unit/post_test.rb +10 -0
  181. data/test/test/unit/project_test.rb +10 -0
  182. data/test/test/unit/response_collector_test.rb +31 -0
  183. data/test/test/unit/something_test.rb +10 -0
  184. data/test/test/unit/tag_test.rb +10 -0
  185. data/test/test/unit/urligence_test.rb +203 -0
  186. data/test/vendor/plugins/shoulda/README +123 -0
  187. data/test/vendor/plugins/shoulda/Rakefile +29 -0
  188. data/test/vendor/plugins/shoulda/bin/convert_to_should_syntax +40 -0
  189. data/test/vendor/plugins/shoulda/init.rb +3 -0
  190. data/test/vendor/plugins/shoulda/lib/shoulda.rb +47 -0
  191. data/test/vendor/plugins/shoulda/lib/shoulda/active_record_helpers.rb +338 -0
  192. data/test/vendor/plugins/shoulda/lib/shoulda/color.rb +77 -0
  193. data/test/vendor/plugins/shoulda/lib/shoulda/context.rb +143 -0
  194. data/test/vendor/plugins/shoulda/lib/shoulda/controller_tests/controller_tests.rb +470 -0
  195. data/test/vendor/plugins/shoulda/lib/shoulda/controller_tests/formats/html.rb +192 -0
  196. data/test/vendor/plugins/shoulda/lib/shoulda/controller_tests/formats/xml.rb +162 -0
  197. data/test/vendor/plugins/shoulda/lib/shoulda/general.rb +119 -0
  198. data/test/vendor/plugins/shoulda/lib/shoulda/private_helpers.rb +17 -0
  199. data/test/vendor/plugins/shoulda/tasks/list_tests.rake +40 -0
  200. data/uninstall.rb +1 -0
  201. metadata +410 -0
@@ -0,0 +1,21 @@
1
+ module ResourceController
2
+ class ResponseCollector
3
+
4
+ attr_reader :responses
5
+
6
+ delegate :clear, :to => :responses
7
+
8
+ def initialize
9
+ @responses = []
10
+ end
11
+
12
+ def method_missing(method_name, &block)
13
+ @responses.delete self[method_name]
14
+ @responses << [method_name, block || nil]
15
+ end
16
+
17
+ def [](symbol)
18
+ @responses.find { |method, block| method == symbol }
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,50 @@
1
+ module Urligence
2
+ def smart_url(*objects)
3
+ urligence(*objects.push(:url))
4
+ end
5
+
6
+ def smart_path(*objects)
7
+ urligence(*objects.push(:path))
8
+ end
9
+
10
+ def hash_for_smart_url(*objects)
11
+ urligence(*objects.unshift(:hash_for).push(:url).push({:type => :hash}))
12
+ end
13
+
14
+ def hash_for_smart_path(*objects)
15
+ urligence(*objects.unshift(:hash_for).push(:path).push({:type => :hash}))
16
+ end
17
+
18
+ def urligence(*objects)
19
+ config = {}
20
+ config.merge!(objects.pop) if objects.last.is_a?(Hash)
21
+
22
+ objects.reject! { |object| object.nil? }
23
+
24
+ url_fragments = objects.collect do |obj|
25
+ if obj.is_a? Symbol
26
+ obj
27
+ elsif obj.is_a? Array
28
+ obj.first
29
+ else
30
+ obj.class.name.underscore.to_sym
31
+ end
32
+ end
33
+
34
+ unless config[:type] == :hash
35
+ send url_fragments.join("_"), *objects.flatten.select { |obj| !obj.is_a? Symbol }
36
+ else
37
+ params = {}
38
+ unparsed_params = objects.select { |obj| !obj.is_a? Symbol }
39
+ unparsed_params.each_with_index do |obj, i|
40
+ unless i == (unparsed_params.length-1)
41
+ params.merge!((obj.is_a? Array) ? {"#{obj.first}_id".to_sym => obj[1].to_param} : {"#{obj.class.name.underscore}_id".to_sym => obj.to_param})
42
+ else
43
+ params.merge!((obj.is_a? Array) ? {:id => obj[1].to_param} : {:id => obj.to_param})
44
+ end
45
+ end
46
+
47
+ send url_fragments.join("_"), params
48
+ end
49
+ end
50
+ end
@@ -0,0 +1 @@
1
+ require "#{File.dirname(__FILE__)}/../init"
@@ -0,0 +1,10 @@
1
+ # Add your own tasks in files placed in lib/tasks ending in .rake,
2
+ # for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.
3
+
4
+ require(File.join(File.dirname(__FILE__), 'config', 'boot'))
5
+
6
+ require 'rake'
7
+ require 'rake/testtask'
8
+ require 'rake/rdoctask'
9
+
10
+ require 'tasks/rails'
@@ -0,0 +1,7 @@
1
+ # Filters added to this controller apply to all controllers in the application.
2
+ # Likewise, all the methods added will be available for all controllers.
3
+
4
+ class ApplicationController < ActionController::Base
5
+ # Pick a unique cookie name to distinguish our session data from others'
6
+ session :session_key => '_myapp_session'
7
+ end
@@ -0,0 +1,3 @@
1
+ class Cms::OptionsController < ResourceController::Base
2
+ belongs_to :product
3
+ end
@@ -0,0 +1,2 @@
1
+ class Cms::ProductsController < ResourceController::Base
2
+ end
@@ -0,0 +1,3 @@
1
+ class CommentsController < ResourceController::Base
2
+ belongs_to :post
3
+ end
@@ -0,0 +1,9 @@
1
+ class PeopleController < ResourceController::Base
2
+ create.before :name_person
3
+ model_name :account
4
+
5
+ private
6
+ def name_person
7
+ @person.name = "Bob Loblaw"
8
+ end
9
+ end
@@ -0,0 +1,10 @@
1
+ class PhotosController < ResourceController::Base
2
+ actions :all, :except => :update
3
+
4
+ belongs_to :user
5
+
6
+ private
7
+ def parent_model
8
+ Account
9
+ end
10
+ end
@@ -0,0 +1,10 @@
1
+ class PostsController < ResourceController::Base
2
+ actions :all
3
+
4
+ create.before(:name_post) { @post.body = '...' }
5
+
6
+ private
7
+ def name_post
8
+ @post.title = 'a great post'
9
+ end
10
+ end
@@ -0,0 +1,3 @@
1
+ class ProjectsController < ApplicationController
2
+ resource_controller
3
+ end
@@ -0,0 +1,3 @@
1
+ class SomethingsController < ResourceController::Base
2
+ actions :index, :show
3
+ end
@@ -0,0 +1,13 @@
1
+ class TagsController < ResourceController::Base
2
+ belongs_to :photo
3
+
4
+ index.wants.js
5
+
6
+ index do
7
+ before { @products = Product.find :all }
8
+ end
9
+
10
+ create.after do
11
+ @photo.tags << @tag if parent_type == :photo
12
+ end
13
+ end
@@ -0,0 +1,12 @@
1
+ class UsersController < ResourceController::Base
2
+ object_name :dude
3
+ route_name :dude
4
+ private
5
+ def route_name
6
+ 'dude'
7
+ end
8
+
9
+ def model_name
10
+ 'account'
11
+ end
12
+ end
@@ -0,0 +1,3 @@
1
+ # Methods added to this helper will be available to all templates in the application.
2
+ module ApplicationHelper
3
+ end
@@ -0,0 +1,2 @@
1
+ module Cms::ProductsHelper
2
+ end
@@ -0,0 +1,2 @@
1
+ module CommentsHelper
2
+ end
@@ -0,0 +1,2 @@
1
+ module OptionsHelper
2
+ end
@@ -0,0 +1,2 @@
1
+ module PeopleHelper
2
+ end
@@ -0,0 +1,2 @@
1
+ module PhotosHelper
2
+ end
@@ -0,0 +1,2 @@
1
+ module PostsHelper
2
+ end
@@ -0,0 +1,2 @@
1
+ module ProjectsHelper
2
+ end
@@ -0,0 +1,2 @@
1
+ module SomethingsHelper
2
+ end
@@ -0,0 +1,2 @@
1
+ module TagsHelper
2
+ end
@@ -0,0 +1,2 @@
1
+ module UsersHelper
2
+ end
@@ -0,0 +1,3 @@
1
+ class Account < ActiveRecord::Base
2
+ has_many :photos
3
+ end
@@ -0,0 +1,3 @@
1
+ class Comment < ActiveRecord::Base
2
+ belongs_to :post
3
+ end
@@ -0,0 +1,3 @@
1
+ class Option < ActiveRecord::Base
2
+ belongs_to :product
3
+ end
@@ -0,0 +1,4 @@
1
+ class Photo < ActiveRecord::Base
2
+ has_and_belongs_to_many :tags
3
+ belongs_to :user, :class_name => "Account", :foreign_key => "account_id"
4
+ end
@@ -0,0 +1,3 @@
1
+ class Post < ActiveRecord::Base
2
+ has_many :comments
3
+ end
@@ -0,0 +1,3 @@
1
+ class Product < ActiveRecord::Base
2
+ has_many :options
3
+ end
@@ -0,0 +1,2 @@
1
+ class Project < ActiveRecord::Base
2
+ end
@@ -0,0 +1,2 @@
1
+ class Something < ActiveRecord::Base
2
+ end
@@ -0,0 +1,3 @@
1
+ class Tag < ActiveRecord::Base
2
+ has_and_belongs_to_many :photos
3
+ end
@@ -0,0 +1,17 @@
1
+ <h1>Editing option</h1>
2
+
3
+ <%= error_messages_for :option %>
4
+
5
+ <% form_for(:option, :url => object_url, :html => { :method => :put }) do |f| %>
6
+ <p>
7
+ <b>Title</b><br />
8
+ <%= f.text_field :title %>
9
+ </p>
10
+
11
+ <p>
12
+ <%= submit_tag "Update" %>
13
+ </p>
14
+ <% end %>
15
+
16
+ <%= link_to 'Show', object_url %> |
17
+ <%= link_to 'Back', collection_url %>
@@ -0,0 +1,20 @@
1
+ <h1>Listing options</h1>
2
+
3
+ <table>
4
+ <tr>
5
+ <th>Title</th>
6
+ </tr>
7
+
8
+ <% for option in @options %>
9
+ <tr>
10
+ <td><%=h option.title %></td>
11
+ <td><%= link_to 'Show', object_url(option) %></td>
12
+ <td><%= link_to 'Edit', edit_object_url(option) %></td>
13
+ <td><%= link_to 'Destroy', object_url(option), :confirm => 'Are you sure?', :method => :delete %></td>
14
+ </tr>
15
+ <% end %>
16
+ </table>
17
+
18
+ <br />
19
+
20
+ <%= link_to 'New option', new_object_url %>
@@ -0,0 +1,16 @@
1
+ <h1>New option</h1>
2
+
3
+ <%= error_messages_for :option %>
4
+
5
+ <% form_for(:option, :url => collection_url) do |f| %>
6
+ <p>
7
+ <b>Title</b><br />
8
+ <%= f.text_field :title %>
9
+ </p>
10
+
11
+ <p>
12
+ <%= submit_tag "Create" %>
13
+ </p>
14
+ <% end %>
15
+
16
+ <%= link_to 'Back', collection_url %>
@@ -0,0 +1,8 @@
1
+ <p>
2
+ <b>Title:</b>
3
+ <%=h @option.title %>
4
+ </p>
5
+
6
+
7
+ <%= link_to 'Edit', edit_object_url %> |
8
+ <%= link_to 'Back', collection_url %>
@@ -0,0 +1,17 @@
1
+ <h1>Editing product</h1>
2
+
3
+ <%= error_messages_for :product %>
4
+
5
+ <% form_for(:product, :url => object_url, :html => { :method => :put }) do |f| %>
6
+ <p>
7
+ <b>Name</b><br />
8
+ <%= f.text_field :name %>
9
+ </p>
10
+
11
+ <p>
12
+ <%= submit_tag "Update" %>
13
+ </p>
14
+ <% end %>
15
+
16
+ <%= link_to 'Show', object_url %> |
17
+ <%= link_to 'Back', collection_url %>
@@ -0,0 +1,20 @@
1
+ <h1>Listing products</h1>
2
+
3
+ <table>
4
+ <tr>
5
+ <th>Name</th>
6
+ </tr>
7
+
8
+ <% for product in @products %>
9
+ <tr>
10
+ <td><%=h product.name %></td>
11
+ <td><%= link_to 'Show', object_url(product) %></td>
12
+ <td><%= link_to 'Edit', edit_object_url(product) %></td>
13
+ <td><%= link_to 'Destroy', object_url(product), :confirm => 'Are you sure?', :method => :delete %></td>
14
+ </tr>
15
+ <% end %>
16
+ </table>
17
+
18
+ <br />
19
+
20
+ <%= link_to 'New product', new_object_url %>
@@ -0,0 +1,16 @@
1
+ <h1>New product</h1>
2
+
3
+ <%= error_messages_for :product %>
4
+
5
+ <% form_for(:product, :url => collection_url) do |f| %>
6
+ <p>
7
+ <b>Name</b><br />
8
+ <%= f.text_field :name %>
9
+ </p>
10
+
11
+ <p>
12
+ <%= submit_tag "Create" %>
13
+ </p>
14
+ <% end %>
15
+
16
+ <%= link_to 'Back', collection_url %>
@@ -0,0 +1,8 @@
1
+ <p>
2
+ <b>Name:</b>
3
+ <%=h @product.name %>
4
+ </p>
5
+
6
+
7
+ <%= link_to 'Edit', edit_object_url %> |
8
+ <%= link_to 'Back', collection_url %>
@@ -0,0 +1,27 @@
1
+ <h1>Editing comment</h1>
2
+
3
+ <%= error_messages_for :comment %>
4
+
5
+ <% form_for(:comment, :url => object_url, :html => { :method => :put }) do |f| %>
6
+ <p>
7
+ <b>Post</b><br />
8
+ <%= f.text_field :post_id %>
9
+ </p>
10
+
11
+ <p>
12
+ <b>Author</b><br />
13
+ <%= f.text_field :author %>
14
+ </p>
15
+
16
+ <p>
17
+ <b>Body</b><br />
18
+ <%= f.text_area :body %>
19
+ </p>
20
+
21
+ <p>
22
+ <%= submit_tag "Update" %>
23
+ </p>
24
+ <% end %>
25
+
26
+ <%= link_to 'Show', object_url %> |
27
+ <%= link_to 'Back', collection_url %>
@@ -0,0 +1,24 @@
1
+ <h1>Listing comments</h1>
2
+
3
+ <table>
4
+ <tr>
5
+ <th>Post</th>
6
+ <th>Author</th>
7
+ <th>Body</th>
8
+ </tr>
9
+
10
+ <% for comment in @comments %>
11
+ <tr>
12
+ <td><%=h comment.post_id %></td>
13
+ <td><%=h comment.author %></td>
14
+ <td><%=h comment.body %></td>
15
+ <td><%= link_to 'Show', object_url(comment) %></td>
16
+ <td><%= link_to 'Edit', edit_object_url(comment) %></td>
17
+ <td><%= link_to 'Destroy', object_url(comment), :confirm => 'Are you sure?', :method => :delete %></td>
18
+ </tr>
19
+ <% end %>
20
+ </table>
21
+
22
+ <br />
23
+
24
+ <%= link_to 'New comment', new_object_url%>