I have dropdown list using select_tag and I have button near it.
I have following requirements:
1) on click of submit button it should go to books#show action
2) Then in show action I retrieve the selected book from dropdown list
3) The show method should show details of book that I would retrieve from database
i.e,the same page should update with this book details.
However,I am unable to perform none of this.
In my view:
<%= form_tag books_path do |f|%>
<%= label_tag "select book" %>
<%= select_tag "selectbook", options_from_collection_for_select(@bid,"book_id","book_id"), :prompt => "Select book",:class => 'cmbbook' %>
<%= submit_tag "view ...", :disable_with => "Please wait." ,:action => "show"%>
<%end%>
In my controller
if(params[:selectbook])
@books = Book.where("book_id = ?",params[:selectbook])
else
@books = Book.all
end
@bid= Books.select("book_id").uniq;
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @books }
format.json { render json: @books }
end
The submit method calling action create instead of show and I also wish the page autoupdate with new book data.
I have found what to do:
I have to write a method in javascript that calls getJson() method to appropriate controller and action and again update view using javascript.Thus,using ajax javascript problem is solved.However,I wish I can do same with pure ruby code.