diff --git a/lib/rails_admin/config/actions/show.rb b/lib/rails_admin/config/actions/show.rb index 555a88ecb7..2bc4ee9e61 100644 --- a/lib/rails_admin/config/actions/show.rb +++ b/lib/rails_admin/config/actions/show.rb @@ -18,11 +18,13 @@ class Show < RailsAdmin::Config::Actions::Base register_instance_option :controller do Proc.new do - render @action.template_name + respond_to do |format| + format.json { render :json => @object } + format.html { render @action.template_name } + end end end - register_instance_option :link_icon do 'icon-info-sign' end diff --git a/spec/integration/config/show/rails_admin_config_show_spec.rb b/spec/integration/config/show/rails_admin_config_show_spec.rb index a0d3a4d0a5..4909592ecf 100644 --- a/spec/integration/config/show/rails_admin_config_show_spec.rb +++ b/spec/integration/config/show/rails_admin_config_show_spec.rb @@ -13,6 +13,24 @@ def do_request visit show_path(:model_name => "team", :id => team.id) end + describe "JSON show view" do + before do + @player = FactoryGirl.create :player + visit uri + end + + let(:uri) { show_path(:model_name => 'player', :id => @player.id, :format => :json) } + let(:body) { page.body } + + it 'should create a JSON uri' do + uri.should == "/admin/player/#{@player.id}.json" + end + + it 'should contain the JSONified object' do + body.should include(@player.to_json) + end + end + describe "compact_show_view" do it 'should hide empty fields in show view by default' do