I am trying to make an app in Rails 4.
I have a projects, project questions and a project answers model.
my models
class Project
  has_many :project_questions, dependent: :destroy#, through: :projects
  accepts_nested_attributes_for :project_questions
end
class ProjectQuestions
  belongs_to :project#, counter_cache: true
  has_many :project_answers, dependent: :destroy
  belongs_to :user
  accepts_nested_attributes_for :project_answers
end
class ProjectAnswer
  belongs_to :project_question#, counter_cache: true  
  belongs_to :user 
end
routes.rb
  resources :projects do
  # patch '/toggle-draft', to 'projects#toggle_draft', as: 'toggle_draft'
    resources :project_questions do
      resources :project_answers
    end
  end
In my projects_controller, I have permitted params for project questions and answers as follows:
project_question_attributes: [:title, :content, :user_id, :project_id,
      project_answer_attributes: [:answer, :project_question_id]],
These params are also permitted in the Project questions and project answers controllers.
In my projects view, I want to render a partial that I have made in my project_questions view folder.
projects/show
  <%= link_to 'Ask a question', new_project_question_path %> <% end %>
  <%= render 'project_questions/pqps' %>
In my project_questions partial which is called _pqps, I have;
<div class="containerfluid">
  <div class="row">
    <div class="col-md-10 col-md-offset-1">
      <% f.simple_fields_for :project_questions, @project.project_questions.build do |f| %>
          <div class="categorytitle">
            <%= f.title %>
          </div>
          <div class="generaltext">
            <%= f.content %>
          </div>
          <%= render 'project_answers/show' %>
          <span class="editproject">   <% if current_user.id ==  @project.creator_id %>
            <%= link_to 'Answer this question', new_project_answer_path %>
              <% end %>
          </span>
      <% end %>
    </div>
  </div>
</div>
When I try this, I get an error that says:
undefined local variable or method `f' for #<#:0x0000010a11ce60>
I thought I was defining f at the beginning of the opening line of the _pqps form.
I'm really struggling to get a grip with coding. Can anyone see what I've done wrong?
                        
You use
f.simple_fields_forin pqps, butfis not defined anywhere. You have to define it usingsimple_form_forsomewhere. I don't know exactly where – it depends on your own needs, but if, say, the whole form is inside _pqps:If form "starts" outside "_pqps" partial, then you have to pass
fas a local parameter: