0

我有使用 select_tag 的下拉列表,并且在它附近有按钮。
我有以下要求:
1)单击提交按钮时,它应该转到书籍#show 操作
2)然后在显示操作中,我从下拉列表中检索选定的书籍
3)显示方法应该显示我将从数据库中检索的书籍的详细信息
即,同一页面应该更新这本书的详细信息。

但是,我无法执行这些。
在我看来:

<%=  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%>

在我的控制器中

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

提交方法调用操作create而不是,show我也希望页面自动更新新书数据。

4

2 回答 2

0

首先,您应该为表单指定控制器和操作,如下所示

form_tag( {:controller => 'your_controller', :action => "show"} )

对于自动更新页面,您应该阅读 rails doc

于 2012-08-27T18:15:28.713 回答
0

我找到了该怎么做:
我必须在 javascript 中编写一个方法,该方法调用getJson()方法来适当的控制器和操作,并再次使用 javascript 更新视图。因此,使用 ajax javascript 问题得到了解决。但是,我希望我能做同样的事情使用纯 ruby​​ 代码。

于 2012-09-11T10:43:06.810 回答