Hi Jabo,
The code you posted here looks fine but I'm not sure I completely understand the problem.
If I understand your post, you have 2 controllers, Dir and Admin and you want to use the same form in views of both controllers. The render :partial call shows the form in /app/view/admin/new.rhtml but not in /app/view/dir/new.rhtml. Is that right?
A few questions: Are any errors showing up in development.log? Have you made doubly sure you have _form.rhtml in both /app/view/admin and /app/view/dir?
Would it be easier to move the _form.rhtml to /app/view/partials and call render :partial => "partials/form" instead? That way there is only 1 form file which helps you make sure the form file itself works. If you need to render certain fields only in the admin controller you can always pass a parameter to the render method like this for example:
# In your dir view
render :partial => "partials/form", :params => { :context = "dir" }# In your admin view
render :partial => "partials/form", :params => { :context = "admin" }
# In /app/view/partials/_form.rhtml
<p><label for="company_name">Name</label>
<%= text_field 'company', 'name' %></p>
... etc ...
<% if( params[:context] == "admin" ) -%>
<p><label for="company_admin_only">Admin field</label>
<%= text_field 'company', 'admin_only' %></p>
<% end -%>
This way "Admin field" will only be displayed when the render is called with "admin" as its :context parameter.
I don't know if any of this was helpful. If not you could post some more complete code so we have a better view of the problem 
-- Marsvin