Rails访问自定义方法实例变量

时间:2015-01-07 02:04:25

标签: ruby-on-rails search controller

我要做的是添加一个简单的搜索到一个' show'查看我的rails应用程序。我已经看到了关于简单搜索的轨道,它给了我一些好的方向,但我似乎无法让它与我的情况一起工作。我只是有一个常见问题解答列表,并希望为“问题”提供搜索过滤器。

这是我的观点/来宾/ show.html.erb

<%= form_tag faq_search_guests_path, method: :get, remote: true, :id => "faq_search_form"     do %>
<p>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search", :name => nil %>
</p>
<% end %>

<div id="faq-search-test"></div>

<% @faqs.each do |f| %>

<h4>Question</h4>
<%= f.question %>

<h4>Answer</h4>
<%= f.answer %>

<% end %>

这里是最初设置@faqs的控制器/ guests_controller.rb方法

def show
@guest = Guest.find(params[:id])
@hotel = Hotel.find(params[:hotel_id])
@faqs = Faq.where(hotel_id: @hotel.id)
@template = Template.where( hotel: @hotel.id )
@visit = Visit.where("hotel_id = ? AND guest_id = ?", @hotel.id, @guest.id).last
@visit = Visit.find(params[:visit_id]) if params[:visit_id] && (@visit.hotel_id == @hotel.id)
unless current_user.hotels.include?(@hotel)
  render :file => "public/401.html", :status => :unauthorized
end

这是我的控制器/ guests_controller.rb我的表单调用的自定义方法

 def faq_search
  @faq_result = Faq.search(params[:search])
  render :nothing => true
 end

这是我的routes.rb

resources :guests do
  get 'faq_search', :on => :collection
end
resources :faqs

这是我的模特/ faq.rb

def self.search(search)
if search
  where('question LIKE ?', '%#{search}%')
else
  scoped
end
end

所以从这里开始,我无法在show.html.erb中显示@faq_result。我想我不知道如何从视图中的自定义控制器方法访问实例变量。

任何帮助都会受到很多关注:)!

0 个答案:

没有答案