# \<% form\_for(@post) do |f| %\> does not work!

**URL:** <https://www.ruby-forum.com/t/form-for-post-do-f-does-not-work/123363>\
**Category:** Rails\
**Created:** [December 17, 2007, 2:42am UTC](https://www.ruby-forum.com/t/form-for-post-do-f-does-not-work/123363 "2007-12-17T02:42:41Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![josh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/45deac/32.png) [@josh](https://www.ruby-forum.com/u/josh)\
**Post date:** [December 17, 2007, 2:42am UTC](https://www.ruby-forum.com/t/form-for-post-do-f-does-not-work/123363/1 "2007-12-17T02:42:41Z")

</div>

Hi all

I just stumbled over the examples in

> **[ActionView::Helpers::FormHelper](https://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html)**
>
> Form helpers are designed to make working with resources much easier compared to using vanilla HTML.

that tells me I could just use

\<% form\_for(@post) do |f| %\>

which should expand to

\<% form\_for :post, @post, :url =\> post\_path(@post), :html =\> { :method  
=\> :put, :class =\> “edit\_post”, :id =\> “edit\_post\_45” } do |f| %\>

However, this gives me just an error:

`@#Post:0x3309258’ is not allowed as an instance variable name

What’s going on here?!

Thanks for help,  
Josh

---

<div class="post-metadata">

**Author:** ![josh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/45deac/32.png) [@josh](https://www.ruby-forum.com/u/josh)\
**Post date:** [December 17, 2007, 3:15am UTC](https://www.ruby-forum.com/t/form-for-post-do-f-does-not-work/123363/2 "2007-12-17T03:15:36Z")

</div>

On 17 Dec 2007, at 01:42, Joshua M. wrote:

> which should expand to
> 
> \<% form\_for :post, @post, :url =\> post\_path(@post), :html =\> { :method  
> =\> :put, :class =\> “edit\_post”, :id =\> “edit\_post\_45” } do |f| %\>
> 
> However, this gives me just an error:
> 
> `@#Post:0x3309258’ is not allowed as an instance variable name

Are you using rails 2.0.1 or 1.2.x ? The docs for 1.2.x make no  
mention of this usage.

Fred

---

<div class="post-metadata">

**Author:** ![josh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/45deac/32.png) [@josh](https://www.ruby-forum.com/u/josh)\
**Post date:** [December 17, 2007, 4:01am UTC](https://www.ruby-forum.com/t/form-for-post-do-f-does-not-work/123363/3 "2007-12-17T04:01:31Z")

</div>

\<% form\_for :post, @post

delete :post,

---

<div class="post-metadata">

**Author:** ![josh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/45deac/32.png) [@josh](https://www.ruby-forum.com/u/josh)\
**Post date:** [December 17, 2007, 4:38am UTC](https://www.ruby-forum.com/t/form-for-post-do-f-does-not-work/123363/4 "2007-12-17T04:38:06Z")

</div>

That error is a Rails 1.2.x error. If you had upgraded it probably  
didn’t upgrade well. Also, make sure your environments.rb says it’s  
2.0.x

On Dec 17, 2007 9:42 AM, Joshua M.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> `@#Post:0x3309258’ is not allowed as an instance variable name
> 
> What’s going on here?!
> 
> Thanks for help,  
> Josh

–  
Ramon T.

---

<div class="post-metadata">

**Author:** ![josh](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/j/45deac/32.png) [@josh](https://www.ruby-forum.com/u/josh)\
**Post date:** [December 18, 2007, 9:50pm UTC](https://www.ruby-forum.com/t/form-for-post-do-f-does-not-work/123363/5 "2007-12-18T21:50:59Z")

</div>

Thanks 🙂
