oldhomemovie
oldhomemovie

Reputation: 15129

has_one association and nested form

I have a model Post:

class Post < ActiveRecord::Base
  has_one :draft, class_name: Post, foreign_key: draft_id
end

In routes.rb I have the following:

namespace :admin do
  resources :posts do
    resource :draft
  end
end

What I want to achieve is to enable drafts when using form_for, i.e.:

= form_for [:admin, @post, @draft] do |form|

...where @post and @draft are different instances of the same model.

Right now if I do that, I get an error:

NoMethodError: undefined method `admin_tour_tour_url'

Question: So how do I make the form generate admin_tour_draft_url + with a needed modifiers like edit_ and new_?

P.S. am I going the wrong path here?

Upvotes: 0

Views: 134

Answers (1)

ilan berci
ilan berci

Reputation: 3881

specify your own path in the form_tag helper by extracting the route explicitly from your routes:

1) rake routes | grep admin_posts

2) notice the path.. probably something like 'admin_posts_draft'

3) add '_path' to the path and that is the name of your helper.. use that helper in your code

<%= form_tag admin_posts_draft_path(@post, @draft) %>
<% end %>

Upvotes: 1

Related Questions