我在另一个表单中添加了一个搜索功能。我想搜索其他形式的内容。
Interest_index.html.erb
<%= form_for :interest, url: interest_index_path do |f| %>
<p class="col-md-8" align="left"><%= f.submit "Save Schedule", class: "btn btn-primary btn-lg btn-block"%></p>
<br>
<div class="field form-group col-lg-12">
<h1><%= f.label :interests, "Schedule" %></h1>
<br>
<div class="row inline">
<%= form_tag interest_index_path, method: :get do %>
<p>
<div class="col-lg-offset-2 col-lg-7" id="one">
<%= text_field_tag :search, params[:search], class: "form-control", placeholder: "Search" %>
</div>
<div id="two">
<%= submit_tag "Search", name: nil, class: "btn btn-default" %>
</div>
</p>
<% end %>
</div>
<% @subjects.each do |subject| %>
<div class="field">
<p><h4><%= f.check_box :interests, {:multiple => true}, subject.id, nil %><%= subject.name %></h4></p>
</div>
<% end %>
</div>
<% end %>
我有一个更大的搜索表单来搜索将被选中的主题,然后与主表单一起提交。我已经尝试使用基本搜索作为我新的rails,但它不起作用。
我认为通常在表单中有一个表单,你需要创建嵌套属性,但这是一个搜索表单,我不知道该怎么做或者是否可行。
我设置它的方式是我创建了很多主题,它们将显示在 interest 索引下。根据兴趣,用户选择他们感兴趣的主题
这里是控制器和模型
Interests_controller class InterestController&lt; ApplicationController中
def index
if params[:query].present?
@subjects = Subject.search(params[:query], load: true)
else
@subjects = Subject.all.sort_by(&:name)
end
end
def create
current_user.interests = params[:interests].to_json
if current_user.save
else
flash[:danger] = "Something went wrong!"
end
redirect_to interest_index_path
end
end
**兴趣模式**
class Interest < ActiveRecord::Base
searchkick
include Tire::Model::Search
include Tire::Model::Callbacks
def self.search(search)
if search
where('name LIKE ?', "%#{search}")
else
scoped
end
end
end
主题模型
class Subject < ActiveRecord::Base
has_many :posts
has_many :users, through: :posts
validates_presence_of :name
validates_uniqueness_of :name
end
Subject_controller
class SubjectController < ApplicationController
def index
@subject = Subject.all.includes(:posts => [:user])
@interests_array = []
if current_user.interests != "null"
JSON.parse(current_user.interests).each do |f|
if Subject.find(f)
@interests_array.push(Subject.find(f))
end
end
end
end
end
答案 0 :(得分:0)
知道了,不需要嵌套表单。我也在使用错误的模型。