Bonjour Philippe,

Le 03/06/2014 04:27, Philippe Creux a écrit :
Le DSL d’ActiveAdmin n’a pas accès aux |*_path|. Il faut donc
“hard-coder” l’URL:
|"/admin/websites/#{Website.first_or_create.id
<http://Website.first_or_create.id>}/edit" # La RACHE|.

Même cela ne fonctionne pas, parce que l'url est _codée en dur_ au démarrage de l'appli, elle ne se met pas à jour... J'ai essayé en fournissant un bloc pour l'url mais...

J'ai réussi en contournant le problème. Je précise que ça ne me convient pas parfaitement, mais ça fonctionne comme je le souhaite. Pour la beauté du code, on verra lors d'une séance de refactoring ;)

```ruby
ActiveAdmin.register Website do
  permit_params :title

  menu label: "Paramètres", priority: 4

  actions :all, except: [:show, :destroy]

  controller do
    def index
      redirect_to edit_first_or_new_website_path
    end

    def edit
      prepare_website
    end

    def update
      prepare_website
      update!
    end

    private

    def prepare_website
      @website =  Website.first || Website.new
    end

    def edit_first_or_new_website_path
      if website = Website.first
        "/admin/websites/#{website.id}/edit"
      else
        "/admin/websites/new"
      end
    end
  end

  form do |f|
    f.inputs "Général" do
      f.input :title
    end
    f.actions
  end
end
```

Merci à tous.
--
Alex

--
--
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
[email protected]
--- Vous recevez ce message, car vous êtes abonné au groupe Google Groupes Railsfrance.
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, 
envoyez un e-mail à l'adresse [email protected].
Pour plus d'options, visitez le site https://groups.google.com/d/optout .

Répondre à