2016-07-26 2 views
0

Я собираюсь финишировать с моим проектом Sinatra Haml School, но мне нужно несколько вещей, чтобы его решить (я очень старался, но не мог решить проблемы). У меня есть портфолио Software Software CMS, где я могу создавать новые записи программного обеспечения (Title, Description, Language и Github link), являясь языком выпадающего списка, заполненного из базы данных. Дело в том, что я хочу, чтобы пользователь выбирал фильтр из списка и отфильтровывал по категориям в списке программ, но когда я нажимаю кнопку фильтра, он показывает только первую запись. Вот код в app.rbSinatra param filter

get '/softwares/:filter' do 
    halt(404,'Forbidden') unless session[:admin] 
    @sware = Software.all 
    @categ = Category.all 
    haml :sware 
end 


post '/softwares/:filter' do 
    @sware = Software.find(category: params[:category]) 
    haml :sware 
end 

А вот код HAML, который показывает список программного обеспечения

%form{:action => "/softwares/:filter", :method => "post", :role => 'form'} 
%select{:name => "category"} 
    - @categ.to_a.each do |category| 
    %option= category.name 
%input{:type => "submit", :value => "Filter", :class => "btn"} 
%ul.list 
- @sware.each do |software| 
    %li(class="glyphicon glyphicon-search" aria-hidden="true") 
    %a{:href =>"/software/edit/#{software.id}", :class =>"btn btn-lg btn-primary"}= software.title 
    %a.pull-right(href="/software/delete/#{software.id}" class="btn btn-lg btn-danger") Delete 
    %li(role="separator" class="divider") ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 

Большое спасибо за ваши ответы. Я очень ценю каждую информацию, которую вы можете сообщить о том, что я делаю неправильно.

+0

Пожалуйста, мне нужен ответ, так как я за рулем с ума, и мне это нужно для моего школьного проекта = '( –

ответ

1

С вашего вопроса немного сложно сказать, потому что вы не предоставляете много информации, например. какой ОРМ вы используете.

Предположив, который вы используете ActiveRecord:

Software.find(...) 
#=> returns the first match 

Software.where(...) 
#=> returns all matches 
+0

Вы правы, и я сожалею о Я уже решил это с помощью вторичного навигатора и всех категорий внутри. –

Смежные вопросы