我正在研究rails并且必须提交一些作业。我正在使用无表格模型,我将信息存储在散列中,并尝试根据文本字段中输入的信息搜索散列并由用户提交。为此,我在“new.html.erb”上创建了一个表单,其中包含两个文本字段和一个提交按钮。
<%= form_for(@travel) do |f| %>
<table>
<tr>
<td></td> <td><input type="text"
class="inputs" id="tagsd" onblur="getname()" placeholder="Departure"></td>
<td><%= f.hidden_field :departure, :id => "dep" %> </td>
</tr>
<tr>
<td></td><td><input type="text"
class="inputs" id="tagsa" onblur="getname()" placeholder="Arrival"> <td/>
<td><%= f.hidden_field :arrival, :id => "arr"%></td>
</tr>
<tr>
<td></td><td><%= f.submit :Search, :class =>
'myButton' %></td>
</tr>
</table>
<%end%>
然后在控制器中,我有
def new
@travel=Travel.new
end
def create
@travel=Travel.new(params[:id])
if @travel.valid?
@departure=params[:travel][:departure] #GETS THE DEPARTURE KEY
@arrival=params[:travel][:arrival] #GETS THE ARRIVAL KEY
#redirect_to params.merge!(:action => :myquery)
redirect_to :action => 'myquery', :departure => @departure, :arrival
=> @arrival
else
render("new")
end
end
然后我定义了“myquery”动作,其中我有多个计算变量和
(我将只展示存储结果的变量以保存空间)
def myquery
@departure_tram_stop= @temp_dep
@direction1= "West"
@change=""
@direction2=""
.....
@arrival_tram_stop= @temp_a
end
然后我定义了一个“_myquery.html.erb”partial来将结果显示为:
<table>
<tr>
<td> <img src="walk.png" width="15" height="25"></td><td> Walk to
<strong><font color="blue"> Ayat <%= @departure_tram_stop%></font></strong>
tram station</td>
</tr>
<tr>
<td width="15" height="25"> </td><td> take tram going to <strong> <font
color="red"> <%= @direction1%></font> </strong>direction <%= @change_m1%>
<strong><font color="blue"><%= @change%></font></strong> <%= @change_m2%>
<strong>
<font color="red"><%=@direction2%></font></strong></td>
</tr>
<tr>
<td></td><td> and get off at <strong> <font color="blue"><%=
@arrival_tram_stop%></font></strong> tram station</td>
</tr>
</table>
<br />
我希望这个“_myquery.html.erb”能够在包含的“new.html.erb”上呈现。所以我在“new.html.erb”
的末尾添加了以下内容 <%= render :partial => "myquery.html.erb" %>
一切正常,我从查询中得到了我期望的值。我的问题是,部分是在另一个页面上执行而不是显示在表单底部的“new.html.erb”上。我希望“_myquery.html.erb”部分显示在“new.html.erb”上的表单底部
我很感激每一次帮助,因为我的时间紧迫。谢谢你们。