How to use the option selected in options_for_select in ruby on rails










0















I have this dropdown in my Rails application:



<%= select_tag(:report_id, options_for_select([["Summary1", 7], ["Summary2", 6]])) %>


The user selectes a value from the dropdown above and clicks aon a button shown below to generate a PDF :



<%= link_to 'Generate', pdf_path(format: :pdf, report: :report_id), class: 'btn btn-primary' %>


This is my controller function that gets called when the button above is clicked:



def show
init_report_data
respond_to do |format, report|
format.html
format.pdf do
puts "***************** report id" + report.to_s + "*************************"
case report
when 7
report_name = 'summary1'
when 6
report_name = 'summary2'
end

render pdf: "Forecast Report",
template: "forecast/" + report_name + ".html.erb",
disposition: "attachment",
:page_width => '18in',
:page_height => '15in'
end
end
end


The controller function gets called fine but the value of the parameter "report" comes up empty inside the above controller function.



What am I doing wrong here? Please help!










share|improve this question




























    0















    I have this dropdown in my Rails application:



    <%= select_tag(:report_id, options_for_select([["Summary1", 7], ["Summary2", 6]])) %>


    The user selectes a value from the dropdown above and clicks aon a button shown below to generate a PDF :



    <%= link_to 'Generate', pdf_path(format: :pdf, report: :report_id), class: 'btn btn-primary' %>


    This is my controller function that gets called when the button above is clicked:



    def show
    init_report_data
    respond_to do |format, report|
    format.html
    format.pdf do
    puts "***************** report id" + report.to_s + "*************************"
    case report
    when 7
    report_name = 'summary1'
    when 6
    report_name = 'summary2'
    end

    render pdf: "Forecast Report",
    template: "forecast/" + report_name + ".html.erb",
    disposition: "attachment",
    :page_width => '18in',
    :page_height => '15in'
    end
    end
    end


    The controller function gets called fine but the value of the parameter "report" comes up empty inside the above controller function.



    What am I doing wrong here? Please help!










    share|improve this question


























      0












      0








      0








      I have this dropdown in my Rails application:



      <%= select_tag(:report_id, options_for_select([["Summary1", 7], ["Summary2", 6]])) %>


      The user selectes a value from the dropdown above and clicks aon a button shown below to generate a PDF :



      <%= link_to 'Generate', pdf_path(format: :pdf, report: :report_id), class: 'btn btn-primary' %>


      This is my controller function that gets called when the button above is clicked:



      def show
      init_report_data
      respond_to do |format, report|
      format.html
      format.pdf do
      puts "***************** report id" + report.to_s + "*************************"
      case report
      when 7
      report_name = 'summary1'
      when 6
      report_name = 'summary2'
      end

      render pdf: "Forecast Report",
      template: "forecast/" + report_name + ".html.erb",
      disposition: "attachment",
      :page_width => '18in',
      :page_height => '15in'
      end
      end
      end


      The controller function gets called fine but the value of the parameter "report" comes up empty inside the above controller function.



      What am I doing wrong here? Please help!










      share|improve this question
















      I have this dropdown in my Rails application:



      <%= select_tag(:report_id, options_for_select([["Summary1", 7], ["Summary2", 6]])) %>


      The user selectes a value from the dropdown above and clicks aon a button shown below to generate a PDF :



      <%= link_to 'Generate', pdf_path(format: :pdf, report: :report_id), class: 'btn btn-primary' %>


      This is my controller function that gets called when the button above is clicked:



      def show
      init_report_data
      respond_to do |format, report|
      format.html
      format.pdf do
      puts "***************** report id" + report.to_s + "*************************"
      case report
      when 7
      report_name = 'summary1'
      when 6
      report_name = 'summary2'
      end

      render pdf: "Forecast Report",
      template: "forecast/" + report_name + ".html.erb",
      disposition: "attachment",
      :page_width => '18in',
      :page_height => '15in'
      end
      end
      end


      The controller function gets called fine but the value of the parameter "report" comes up empty inside the above controller function.



      What am I doing wrong here? Please help!







      ruby-on-rails drop-down-menu controller






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Nov 13 '18 at 6:47







      Biju

















      asked Nov 13 '18 at 6:39









      BijuBiju

      1148




      1148






















          2 Answers
          2






          active

          oldest

          votes


















          4














          The problem is that you're not using a form here.



          Use form_tag and keep the select_tag inside the form_tag.



          Also, You will have to replace link_to with a submit button. Don't forget to include the below line inside the form to make the request to respond with pdf format.



          <%= hidden_field_tag :format, :pdf %>


          The reason is the link_to tag don't pass your select_tag value or any other field value. In this scenario, you've to use form and there is no other option to it.



          Or use JavaScript to replace the id in url when the select option changes. Since You're trying to get the show action I assume you need to pass the id in path.






          share|improve this answer

























          • Hi @abhilashreddy I added a form and converted link_to to button_to: ` <div class="form-group" style="width:40%"> <%= form_tag(, :method => :get) do %> <%= select_tag(:report_id, options_for_select([["Summary1", 7], ["Summary2", 6]])) %> <% end %> </div> <div style="padding-left: 10px;margin-top: -52px;" > <%= button_to 'Generate Report',forecast_report_pdf_path(format: :pdf, report: :report_id), class: 'btn btn-primary' %> </div>` But still no luck! Pls help!

            – Biju
            Nov 13 '18 at 7:00












          • seems like you didn't specify the path for the form. it should be something like this <%= form_tag do_some_things_path, method: :get do %>

            – Abhilash Reddy
            Nov 13 '18 at 7:20











          • <%= form_tag forecast_report_pdf_path do %> <%= select_tag(:report_id, options_for_select([["Summary1", 7], ["Summary2", 6]])) %> <%= hidden_field_tag :format, :pdf %> <%= submit_tag("Generate Report") %> This code worked. Thanks much for your inputs!

            – Biju
            Nov 13 '18 at 7:46


















          -1














          <%= form_tag forecast_report_pdf_path do %>
          <%= select_tag(:report_id, options_for_select([["Summary1", 7], ["Summary2", 6]])) %>
          <%= hidden_field_tag :format, :pdf %>
          <%= submit_tag("Generate Report") %>
          <% end %>


          This code worked. Thanks much for your inputs!






          share|improve this answer
























            Your Answer






            StackExchange.ifUsing("editor", function ()
            StackExchange.using("externalEditor", function ()
            StackExchange.using("snippets", function ()
            StackExchange.snippets.init();
            );
            );
            , "code-snippets");

            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "1"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53275189%2fhow-to-use-the-option-selected-in-options-for-select-in-ruby-on-rails%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            4














            The problem is that you're not using a form here.



            Use form_tag and keep the select_tag inside the form_tag.



            Also, You will have to replace link_to with a submit button. Don't forget to include the below line inside the form to make the request to respond with pdf format.



            <%= hidden_field_tag :format, :pdf %>


            The reason is the link_to tag don't pass your select_tag value or any other field value. In this scenario, you've to use form and there is no other option to it.



            Or use JavaScript to replace the id in url when the select option changes. Since You're trying to get the show action I assume you need to pass the id in path.






            share|improve this answer

























            • Hi @abhilashreddy I added a form and converted link_to to button_to: ` <div class="form-group" style="width:40%"> <%= form_tag(, :method => :get) do %> <%= select_tag(:report_id, options_for_select([["Summary1", 7], ["Summary2", 6]])) %> <% end %> </div> <div style="padding-left: 10px;margin-top: -52px;" > <%= button_to 'Generate Report',forecast_report_pdf_path(format: :pdf, report: :report_id), class: 'btn btn-primary' %> </div>` But still no luck! Pls help!

              – Biju
              Nov 13 '18 at 7:00












            • seems like you didn't specify the path for the form. it should be something like this <%= form_tag do_some_things_path, method: :get do %>

              – Abhilash Reddy
              Nov 13 '18 at 7:20











            • <%= form_tag forecast_report_pdf_path do %> <%= select_tag(:report_id, options_for_select([["Summary1", 7], ["Summary2", 6]])) %> <%= hidden_field_tag :format, :pdf %> <%= submit_tag("Generate Report") %> This code worked. Thanks much for your inputs!

              – Biju
              Nov 13 '18 at 7:46















            4














            The problem is that you're not using a form here.



            Use form_tag and keep the select_tag inside the form_tag.



            Also, You will have to replace link_to with a submit button. Don't forget to include the below line inside the form to make the request to respond with pdf format.



            <%= hidden_field_tag :format, :pdf %>


            The reason is the link_to tag don't pass your select_tag value or any other field value. In this scenario, you've to use form and there is no other option to it.



            Or use JavaScript to replace the id in url when the select option changes. Since You're trying to get the show action I assume you need to pass the id in path.






            share|improve this answer

























            • Hi @abhilashreddy I added a form and converted link_to to button_to: ` <div class="form-group" style="width:40%"> <%= form_tag(, :method => :get) do %> <%= select_tag(:report_id, options_for_select([["Summary1", 7], ["Summary2", 6]])) %> <% end %> </div> <div style="padding-left: 10px;margin-top: -52px;" > <%= button_to 'Generate Report',forecast_report_pdf_path(format: :pdf, report: :report_id), class: 'btn btn-primary' %> </div>` But still no luck! Pls help!

              – Biju
              Nov 13 '18 at 7:00












            • seems like you didn't specify the path for the form. it should be something like this <%= form_tag do_some_things_path, method: :get do %>

              – Abhilash Reddy
              Nov 13 '18 at 7:20











            • <%= form_tag forecast_report_pdf_path do %> <%= select_tag(:report_id, options_for_select([["Summary1", 7], ["Summary2", 6]])) %> <%= hidden_field_tag :format, :pdf %> <%= submit_tag("Generate Report") %> This code worked. Thanks much for your inputs!

              – Biju
              Nov 13 '18 at 7:46













            4












            4








            4







            The problem is that you're not using a form here.



            Use form_tag and keep the select_tag inside the form_tag.



            Also, You will have to replace link_to with a submit button. Don't forget to include the below line inside the form to make the request to respond with pdf format.



            <%= hidden_field_tag :format, :pdf %>


            The reason is the link_to tag don't pass your select_tag value or any other field value. In this scenario, you've to use form and there is no other option to it.



            Or use JavaScript to replace the id in url when the select option changes. Since You're trying to get the show action I assume you need to pass the id in path.






            share|improve this answer















            The problem is that you're not using a form here.



            Use form_tag and keep the select_tag inside the form_tag.



            Also, You will have to replace link_to with a submit button. Don't forget to include the below line inside the form to make the request to respond with pdf format.



            <%= hidden_field_tag :format, :pdf %>


            The reason is the link_to tag don't pass your select_tag value or any other field value. In this scenario, you've to use form and there is no other option to it.



            Or use JavaScript to replace the id in url when the select option changes. Since You're trying to get the show action I assume you need to pass the id in path.







            share|improve this answer














            share|improve this answer



            share|improve this answer








            edited Nov 13 '18 at 8:08

























            answered Nov 13 '18 at 6:47









            Abhilash ReddyAbhilash Reddy

            1,1401619




            1,1401619












            • Hi @abhilashreddy I added a form and converted link_to to button_to: ` <div class="form-group" style="width:40%"> <%= form_tag(, :method => :get) do %> <%= select_tag(:report_id, options_for_select([["Summary1", 7], ["Summary2", 6]])) %> <% end %> </div> <div style="padding-left: 10px;margin-top: -52px;" > <%= button_to 'Generate Report',forecast_report_pdf_path(format: :pdf, report: :report_id), class: 'btn btn-primary' %> </div>` But still no luck! Pls help!

              – Biju
              Nov 13 '18 at 7:00












            • seems like you didn't specify the path for the form. it should be something like this <%= form_tag do_some_things_path, method: :get do %>

              – Abhilash Reddy
              Nov 13 '18 at 7:20











            • <%= form_tag forecast_report_pdf_path do %> <%= select_tag(:report_id, options_for_select([["Summary1", 7], ["Summary2", 6]])) %> <%= hidden_field_tag :format, :pdf %> <%= submit_tag("Generate Report") %> This code worked. Thanks much for your inputs!

              – Biju
              Nov 13 '18 at 7:46

















            • Hi @abhilashreddy I added a form and converted link_to to button_to: ` <div class="form-group" style="width:40%"> <%= form_tag(, :method => :get) do %> <%= select_tag(:report_id, options_for_select([["Summary1", 7], ["Summary2", 6]])) %> <% end %> </div> <div style="padding-left: 10px;margin-top: -52px;" > <%= button_to 'Generate Report',forecast_report_pdf_path(format: :pdf, report: :report_id), class: 'btn btn-primary' %> </div>` But still no luck! Pls help!

              – Biju
              Nov 13 '18 at 7:00












            • seems like you didn't specify the path for the form. it should be something like this <%= form_tag do_some_things_path, method: :get do %>

              – Abhilash Reddy
              Nov 13 '18 at 7:20











            • <%= form_tag forecast_report_pdf_path do %> <%= select_tag(:report_id, options_for_select([["Summary1", 7], ["Summary2", 6]])) %> <%= hidden_field_tag :format, :pdf %> <%= submit_tag("Generate Report") %> This code worked. Thanks much for your inputs!

              – Biju
              Nov 13 '18 at 7:46
















            Hi @abhilashreddy I added a form and converted link_to to button_to: ` <div class="form-group" style="width:40%"> <%= form_tag(, :method => :get) do %> <%= select_tag(:report_id, options_for_select([["Summary1", 7], ["Summary2", 6]])) %> <% end %> </div> <div style="padding-left: 10px;margin-top: -52px;" > <%= button_to 'Generate Report',forecast_report_pdf_path(format: :pdf, report: :report_id), class: 'btn btn-primary' %> </div>` But still no luck! Pls help!

            – Biju
            Nov 13 '18 at 7:00






            Hi @abhilashreddy I added a form and converted link_to to button_to: ` <div class="form-group" style="width:40%"> <%= form_tag(, :method => :get) do %> <%= select_tag(:report_id, options_for_select([["Summary1", 7], ["Summary2", 6]])) %> <% end %> </div> <div style="padding-left: 10px;margin-top: -52px;" > <%= button_to 'Generate Report',forecast_report_pdf_path(format: :pdf, report: :report_id), class: 'btn btn-primary' %> </div>` But still no luck! Pls help!

            – Biju
            Nov 13 '18 at 7:00














            seems like you didn't specify the path for the form. it should be something like this <%= form_tag do_some_things_path, method: :get do %>

            – Abhilash Reddy
            Nov 13 '18 at 7:20





            seems like you didn't specify the path for the form. it should be something like this <%= form_tag do_some_things_path, method: :get do %>

            – Abhilash Reddy
            Nov 13 '18 at 7:20













            <%= form_tag forecast_report_pdf_path do %> <%= select_tag(:report_id, options_for_select([["Summary1", 7], ["Summary2", 6]])) %> <%= hidden_field_tag :format, :pdf %> <%= submit_tag("Generate Report") %> This code worked. Thanks much for your inputs!

            – Biju
            Nov 13 '18 at 7:46





            <%= form_tag forecast_report_pdf_path do %> <%= select_tag(:report_id, options_for_select([["Summary1", 7], ["Summary2", 6]])) %> <%= hidden_field_tag :format, :pdf %> <%= submit_tag("Generate Report") %> This code worked. Thanks much for your inputs!

            – Biju
            Nov 13 '18 at 7:46













            -1














            <%= form_tag forecast_report_pdf_path do %>
            <%= select_tag(:report_id, options_for_select([["Summary1", 7], ["Summary2", 6]])) %>
            <%= hidden_field_tag :format, :pdf %>
            <%= submit_tag("Generate Report") %>
            <% end %>


            This code worked. Thanks much for your inputs!






            share|improve this answer





























              -1














              <%= form_tag forecast_report_pdf_path do %>
              <%= select_tag(:report_id, options_for_select([["Summary1", 7], ["Summary2", 6]])) %>
              <%= hidden_field_tag :format, :pdf %>
              <%= submit_tag("Generate Report") %>
              <% end %>


              This code worked. Thanks much for your inputs!






              share|improve this answer



























                -1












                -1








                -1







                <%= form_tag forecast_report_pdf_path do %>
                <%= select_tag(:report_id, options_for_select([["Summary1", 7], ["Summary2", 6]])) %>
                <%= hidden_field_tag :format, :pdf %>
                <%= submit_tag("Generate Report") %>
                <% end %>


                This code worked. Thanks much for your inputs!






                share|improve this answer















                <%= form_tag forecast_report_pdf_path do %>
                <%= select_tag(:report_id, options_for_select([["Summary1", 7], ["Summary2", 6]])) %>
                <%= hidden_field_tag :format, :pdf %>
                <%= submit_tag("Generate Report") %>
                <% end %>


                This code worked. Thanks much for your inputs!







                share|improve this answer














                share|improve this answer



                share|improve this answer








                edited Nov 21 '18 at 7:42









                Abhilash Reddy

                1,1401619




                1,1401619










                answered Nov 13 '18 at 7:47









                BijuBiju

                1148




                1148



























                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53275189%2fhow-to-use-the-option-selected-in-options-for-select-in-ruby-on-rails%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    𛂒𛀶,𛀽𛀑𛂀𛃧𛂓𛀙𛃆𛃑𛃷𛂟𛁡𛀢𛀟𛁤𛂽𛁕𛁪𛂟𛂯,𛁞𛂧𛀴𛁄𛁠𛁼𛂿𛀤 𛂘,𛁺𛂾𛃭𛃭𛃵𛀺,𛂣𛃍𛂖𛃶 𛀸𛃀𛂖𛁶𛁏𛁚 𛂢𛂞 𛁰𛂆𛀔,𛁸𛀽𛁓𛃋𛂇𛃧𛀧𛃣𛂐𛃇,𛂂𛃻𛃲𛁬𛃞𛀧𛃃𛀅 𛂭𛁠𛁡𛃇𛀷𛃓𛁥,𛁙𛁘𛁞𛃸𛁸𛃣𛁜,𛂛,𛃿,𛁯𛂘𛂌𛃛𛁱𛃌𛂈𛂇 𛁊𛃲,𛀕𛃴𛀜 𛀶𛂆𛀶𛃟𛂉𛀣,𛂐𛁞𛁾 𛁷𛂑𛁳𛂯𛀬𛃅,𛃶𛁼

                    Edmonton

                    Crossroads (UK TV series)