local variables in _form.html.erb undefined

_active_record_post_comments.html.erb

<%= render post.comments %>

<% if (user_signed_in? && current_user != User.find(post.blogger_id)) %>

	<%= render partial: "blogit/comments/form", locals: { post: post, comment: comment } %>

</div>

<% end %>

_form.html.erb

<%= form_for [post, comment], remote: true,

html: {

class: “new_blog_comment”, id: “new_blog_comment” } do |f| -%>

error:

ActionView::Template::Error (undefined local variable or method `post’ for #<#Class:0x007f606c7b4818:0x007f607eeeb278>

Did you mean? @post):

1:

2: <%= form_for [post, comment], remote: true,

3: html: {

4: class: “new_blog_comment”, id: “new_blog_comment” } do |f| -%>

Show the code where you are trying to render this form. A partial that renders implicitly (like in a scaffolded CRUD form):

#/app/views/posts/new.html.erb
<%= render 'form' %>

...will get a local variable named `post` in the render context.

What does your controller look like, and what does the enclosing template look like that is rendering this partial?

Walter

class PostsController < ::Blogit::ApplicationController

def show

@post = Post.find(params[:id])

end

show.html.erb

<%= render @post %>

<%= share_bar_for @post %>

<%= render “blogit/posts/post_footer”, post: @post %>

<%= comments_for @post %>

posts_helper.rb

def comments_for(post)

render(partial: “blogit/posts/#{Blogit.configuration.include_comments}_comments”, locals: { post: post, comment: Blogit::Comment.new })

end

active_record_comments.html.erb

<%= render post.comments %>

<% if (user_signed_in? && current_user != User.find(post.blogger_id)) %>

	<%= render partial: "blogit/comments/form", locals: { post: post, comment: comment } %>

</div>

<% end %>

comments/_form.html.erb

<%= form_for [post, comment], remote: true,

html: {

class: “new_blog_comment”, id: “new_blog_comment” } do |f| -%>

<%=t :leave_a_comment, scope: 'blogit.comments'%>

<%= field do %>

<%= f.label :body, t(:your_comment, scope: ‘blogit.comments’) %>

<%= f.text_area :body %>

<%= errors_on(comment, :body) %>

<% end %>

<%= actions do %>

<%= f.submit t(:add_comment, scope: ‘blogit.comments’), :disable_with => t(:adding_comment, scope: ‘blogit.comments’) %>

<% end %>

<% end -%>