现在我正在尝试在index.html.erb(成员)的页面上设置一个表单。我希望表单显示搜索结果,并希望它不要移动到其他页面。我想在index.html.erb(成员)本身上显示结果。
但是下面的代码使应用程序在按下搜索按钮后移动到show.html(成员)。我不知道为什么会这样。你能给我一些建议吗?
现在我正在尝试根据我的教科书设置搜索窗口。但我失败了,下面的错误信息。虽然这只是一个语法错误,但我不明白原因。你能给我一些建议吗?
☆index.html.erb(成员控制员)
<h1>Listing users</h1>
<p>※登録されているメンバーのリストです。</p>
<%= form_tag :action => 'index' do %>
<div class = "field">
<%= label_tag 'place', '活動場所:' %><br />
<%= text_field_tag 'place' %>
</div>
<%= submit_tag '検索' %>
<% end %>
<%= @places_field %>
☆会员控制器
def index
if !checklogin? then return end #
@members = Member.all
@places_field = Member.where("place = ?", params[:place])
respond_to do |format|
format.html # index.html.erb
format.json
end
end
☆routes.rb中
MiniSNS::Application.routes.draw do
resources :group_message_comments
resources :group_messages do
resources :group_message_comments
end
root :to => 'members#login'
match '/groups/join'
resources :group_messages
resources :groups do
resources :group_messages
end
match '/members/new'
resources :index
resources :groups
post 'groups/:id' => 'group#show'
post '/groups/new'
post '/index/index'
match '/members/login'
match '/members/logout'
match '/members/friend'
match '/members/show'
post '/messages/comment'
resources :comments
resources :messages
resources :friends
resources :members
#OmniAuth
match "/auth/:provider/callback" => "sessions#callback"
match "/logout" => "sessions#destroy", :as => :logout
match '/auth/failure', to: redirect('/')
答案 0 :(得分:0)
首先,您必须在remote => true
上添加submit_tag
,例如:
<%= submit_tag '検索', :remote => true %>
然后在您的控制器上,使用以下命令添加返回js:
respond_to do |format|
format.html # index.html.erb
format.json
format.js
end
创建名为index.js.erb
的新视图,并使用Javascript代码填充该文件以更新您的地点字段,最简单的方法如下:
在 index.html.erb 上,请确保您拥有此类代码:
<div id="place_field_section"><%= render 'place_field' %></div>
当然,您应该有一个名为_place_field.html.erb
的部分名称,例如:
<table>
<tr>
<th>Foo</th>
<th>Bar</th>
</tr>
<% @place_fields.each do |place_field| %>
<tr>
<td><%= place_field.foo %></td>
<td><%= place_field.bar %></td>
</tr>
<% end %>
</table>
然后在 index.js.erb :
上$("#place_field_section").html("<%= escape_javascript(render('place_field')) %>");
这是你的意图吗?如果我错了,请纠正我。