Skip to content

Instantly share code, notes, and snippets.

@universal
Forked from anonymous/gist:73956f621e1c99070993
Last active August 29, 2015 14:28
Show Gist options
  • Save universal/ce2d88ad6b94142431fa to your computer and use it in GitHub Desktop.
Save universal/ce2d88ad6b94142431fa to your computer and use it in GitHub Desktop.
show do
panel "Participated Surveys" do
farmer_id = resource.id
table_for resource.forms do
column("Name") {|form| link_to(form.name, admin_form_path(form))}
column("Answers") { |form| link_to("answers", farmer_form_question_answers_admin_form_path(form, farmer_id: farmer_id))}
column :created_at
end
end
end
I want to have a member_route on forms.rb that I can just send in 2 objects e.g. farmer_form_question_answers_admin_path(@farmer, @form)
So that on the rendered farmer_form_question_answers.html.arb I have both objects to work with to do:
@form.questions.answers.find_by(farmer_id: @farmer.id)
Here is my member route in admin/form.rb
member_action :farmer_form_question_answers do
@questions = resource[:form].questions
end
When I do farmer_form_question_answers_admin_path(farmer: @farmer.id, form: @form.id) I get an error:
Couldn't find Form with 'id'=1. However, actually my farmer.id = 1 and form.id = 3.
Here is how I am calling the route in my admin/farmer.rb
Prefix Verb URI Pattern Controller#Action
import_forms POST /forms/import(.:format) forms#import
forms GET /forms(.:format) forms#index
POST /forms(.:format) forms#create
new_form GET /forms/new(.:format) forms#new
edit_form GET /forms/:id/edit(.:format) forms#edit
form GET /forms/:id(.:format) forms#show
PATCH /forms/:id(.:format) forms#update
PUT /forms/:id(.:format) forms#update
DELETE /forms/:id(.:format) forms#destroy
farmer_form_question_answers GET /farmers/:farmer_id/forms/:form_id/questions/:question_id/answers(.:format) answers#index
POST /farmers/:farmer_id/forms/:form_id/questions/:question_id/answers(.:format) answers#create
new_farmer_form_question_answer GET /farmers/:farmer_id/forms/:form_id/questions/:question_id/answers/new(.:format) answers#new
edit_farmer_form_question_answer GET /farmers/:farmer_id/forms/:form_id/questions/:question_id/answers/:id/edit(.:format) answers#edit
farmer_form_question_answer GET /farmers/:farmer_id/forms/:form_id/questions/:question_id/answers/:id(.:format) answers#show
PATCH /farmers/:farmer_id/forms/:form_id/questions/:question_id/answers/:id(.:format) answers#update
PUT /farmers/:farmer_id/forms/:form_id/questions/:question_id/answers/:id(.:format) answers#update
DELETE /farmers/:farmer_id/forms/:form_id/questions/:question_id/answers/:id(.:format) answers#destroy
farmer_form_questions GET /farmers/:farmer_id/forms/:form_id/questions(.:format) questions#index
POST /farmers/:farmer_id/forms/:form_id/questions(.:format) questions#create
new_farmer_form_question GET /farmers/:farmer_id/forms/:form_id/questions/new(.:format) questions#new
edit_farmer_form_question GET /farmers/:farmer_id/forms/:form_id/questions/:id/edit(.:format) questions#edit
farmer_form_question GET /farmers/:farmer_id/forms/:form_id/questions/:id(.:format) questions#show
PATCH /farmers/:farmer_id/forms/:form_id/questions/:id(.:format) questions#update
PUT /farmers/:farmer_id/forms/:form_id/questions/:id(.:format) questions#update
DELETE /farmers/:farmer_id/forms/:form_id/questions/:id(.:format) questions#destroy
farmer_form_scores GET /farmers/:farmer_id/forms/:form_id/scores(.:format) scores#index
POST /farmers/:farmer_id/forms/:form_id/scores(.:format) scores#create
new_farmer_form_score GET /farmers/:farmer_id/forms/:form_id/scores/new(.:format) scores#new
edit_farmer_form_score GET /farmers/:farmer_id/forms/:form_id/scores/:id/edit(.:format) scores#edit
farmer_form_score GET /farmers/:farmer_id/forms/:form_id/scores/:id(.:format) scores#show
PATCH /farmers/:farmer_id/forms/:form_id/scores/:id(.:format) scores#update
PUT /farmers/:farmer_id/forms/:form_id/scores/:id(.:format) scores#update
DELETE /farmers/:farmer_id/forms/:form_id/scores/:id(.:format) scores#destroy
farmer_forms GET /farmers/:farmer_id/forms(.:format) forms#index
POST /farmers/:farmer_id/forms(.:format) forms#create
new_farmer_form GET /farmers/:farmer_id/forms/new(.:format) forms#new
edit_farmer_form GET /farmers/:farmer_id/forms/:id/edit(.:format) forms#edit
farmer_form GET /farmers/:farmer_id/forms/:id(.:format) forms#show
PATCH /farmers/:farmer_id/forms/:id(.:format) forms#update
PUT /farmers/:farmer_id/forms/:id(.:format) forms#update
DELETE /farmers/:farmer_id/forms/:id(.:format) forms#destroy
farmers GET /farmers(.:format) farmers#index
POST /farmers(.:format) farmers#create
new_farmer GET /farmers/new(.:format) farmers#new
edit_farmer GET /farmers/:id/edit(.:format) farmers#edit
farmer GET /farmers/:id(.:format) farmers#show
PATCH /farmers/:id(.:format) farmers#update
PUT /farmers/:id(.:format) farmers#update
DELETE /farmers/:id(.:format) farmers#destroy
root GET / admin/dashboard#index
submission POST /submission(.:format) farmers#receive_answers
formList GET /formList(.:format) forms#getforms
new_admin_user_session GET /admin/login(.:format) active_admin/devise/sessions#new
admin_user_session POST /admin/login(.:format) active_admin/devise/sessions#create
destroy_admin_user_session DELETE|GET /admin/logout(.:format) active_admin/devise/sessions#destroy
admin_user_password POST /admin/password(.:format) active_admin/devise/passwords#create
new_admin_user_password GET /admin/password/new(.:format) active_admin/devise/passwords#new
edit_admin_user_password GET /admin/password/edit(.:format) active_admin/devise/passwords#edit
PATCH /admin/password(.:format) active_admin/devise/passwords#update
PUT /admin/password(.:format) active_admin/devise/passwords#update
admin_root GET /admin(.:format) admin/dashboard#index
batch_action_admin_admin_users POST /admin/admin_users/batch_action(.:format) admin/admin_users#batch_action
admin_admin_users GET /admin/admin_users(.:format) admin/admin_users#index
POST /admin/admin_users(.:format) admin/admin_users#create
new_admin_admin_user GET /admin/admin_users/new(.:format) admin/admin_users#new
edit_admin_admin_user GET /admin/admin_users/:id/edit(.:format) admin/admin_users#edit
admin_admin_user GET /admin/admin_users/:id(.:format) admin/admin_users#show
PATCH /admin/admin_users/:id(.:format) admin/admin_users#update
PUT /admin/admin_users/:id(.:format) admin/admin_users#update
DELETE /admin/admin_users/:id(.:format) admin/admin_users#destroy
admin_dashboard GET /admin/dashboard(.:format) admin/dashboard#index
batch_action_admin_farmers POST /admin/farmers/batch_action(.:format) admin/farmers#batch_action
admin_farmers GET /admin/farmers(.:format) admin/farmers#index
POST /admin/farmers(.:format) admin/farmers#create
new_admin_farmer GET /admin/farmers/new(.:format) admin/farmers#new
edit_admin_farmer GET /admin/farmers/:id/edit(.:format) admin/farmers#edit
admin_farmer GET /admin/farmers/:id(.:format) admin/farmers#show
PATCH /admin/farmers/:id(.:format) admin/farmers#update
PUT /admin/farmers/:id(.:format) admin/farmers#update
DELETE /admin/farmers/:id(.:format) admin/farmers#destroy
form_questions_admin_form GET /admin/forms/:id/form_questions(.:format) admin/forms#form_questions
farmer_form_question_answers_admin_form GET /admin/forms/:id/farmer_form_question_answers(.:format) admin/forms#farmer_form_question_answers
completed_admin_form GET /admin/forms/:id/completed(.:format) admin/forms#completed
form_farmer_questions_admin_forms GET /admin/forms/form_farmer_questions(.:format) admin/forms#form_farmer_questions
batch_action_admin_forms POST /admin/forms/batch_action(.:format) admin/forms#batch_action
admin_forms GET /admin/forms(.:format) admin/forms#index
POST /admin/forms(.:format) admin/forms#create
new_admin_form GET /admin/forms/new(.:format) admin/forms#new
edit_admin_form GET /admin/forms/:id/edit(.:format) admin/forms#edit
admin_form GET /admin/forms/:id(.:format) admin/forms#show
PATCH /admin/forms/:id(.:format) admin/forms#update
PUT /admin/forms/:id(.:format) admin/forms#update
DELETE /admin/forms/:id(.:format) admin/forms#destroy
admin_comments GET /admin/comments(.:format) admin/comments#index
POST /admin/comments(.:format) admin/comments#create
admin_comment GET /admin/comments/:id(.:format) admin/comments#show
DELETE /admin/comments/:id(.:format) admin/comments#destroy
new_user_session GET /users/sign_in(.:format) devise/sessions#new
user_session POST /users/sign_in(.:format) devise/sessions#create
destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy
user_password POST /users/password(.:format) devise/passwords#create
new_user_password GET /users/password/new(.:format) devise/passwords#new
edit_user_password GET /users/password/edit(.:format) devise/passwords#edit
PATCH /users/password(.:format) devise/passwords#update
PUT /users/password(.:format) devise/passwords#update
cancel_user_registration GET /users/cancel(.:format) devise/registrations#cancel
user_registration POST /users(.:format) devise/registrations#create
new_user_registration GET /users/sign_up(.:format) devise/registrations#new
edit_user_registration GET /users/edit(.:format) devise/registrations#edit
PATCH /users(.:format) devise/registrations#update
PUT /users(.:format) devise/registrations#update
DELETE /users(.:format) devise/registrations#destroy
new_view_session GET /views/sign_in(.:format) devise/sessions#new
view_session POST /views/sign_in(.:format) devise/sessions#create
destroy_view_session DELETE /views/sign_out(.:format) devise/sessions#destroy
view_password POST /views/password(.:format) devise/passwords#create
new_view_password GET /views/password/new(.:format) devise/passwords#new
edit_view_password GET /views/password/edit(.:format) devise/passwords#edit
PATCH /views/password(.:format) devise/passwords#update
PUT /views/password(.:format) devise/passwords#update
cancel_view_registration GET /views/cancel(.:format) devise/registrations#cancel
view_registration POST /views(.:format) devise/registrations#create
new_view_registration GET /views/sign_up(.:format) devise/registrations#new
edit_view_registration GET /views/edit(.:format) devise/registrations#edit
PATCH /views(.:format) devise/registrations#update
PUT /views(.:format) devise/registrations#update
DELETE /views(.:format) devise/registrations#destroy
/*path(.:format) pages#error_404
@KelvinMutuma
Copy link

The rendered url is good http://localhost:3000/admin/forms/3/farmer_form_question_answers?farmer_id=8

But I am getting an error NameError at /admin/forms/3/farmer_form_question_answers undefined local variable or methodfarmer_id' for :Arbre::Context`

How do I pick the farmer_id from the url?

Here is the rendered file i.e. app/views/admin/farmer_form_question_answers.html.arb

panel "Farmer Answers" do 
  table_for assigns[:form].questions do 
    puts form.inspect
    column :id
    column :name
    column :content
    column("Answers") do |question|
      @answer = Answer.where(
              "question_id = :question_id and form_id = :form_id and farmer_id = :farmer_id", 
              {question_id: question.id, form_id: form.id, farmer_id: farmer_id}
              )
      if @answer.count != 0
        @answer.first.answer
      else
        "Unanswered"
      end
    end
  end
end

@KelvinMutuma
Copy link

I have used a dirty method on app/views/admin/farmer_form_question_answers.html.arb to select the farmer

@answer = Answer.where( "question_id = :question_id and form_id = :form_id and farmer_id = :farmer_id", {question_id: question.id, form_id: form.id, farmer_id: params[:farmer_id]} )

However I find it strange that the displayed farmer form has no answers yet there are answers. Here is the output of the rails server
screen shot 2015-08-25 at 12 02 08 pm

Here is the output of Answer.all.limit(10) on rails c

screen shot 2015-08-25 at 12 03 44 pm

I find it strange that the form.id and params[:farmer_id] returns NULL

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment