【问题标题】:Sinatra param filterSinatra 参数过滤器
【发布时间】:2016-11-29 18:11:28
【问题描述】:

我即将完成我的 Sinatra Haml 学校项目,但我需要解决一些问题(我非常努力但无法解决问题)。我有一个软件组合 CMS,我可以在其中创建新的软件条目(标题、描述、语言和 Github 链接),语言是从数据库中填充的下拉列表。事情是我想让用户从列表中选择一个过滤器并在软件列表中按类别过滤,但是当我按下过滤器按钮时,它只显示第一个条目。这是app.rb中的代码

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") ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

非常感谢您的回答。我真的很感激你能提供的关于我做错了什么的每一个信息。

【问题讨论】:

  • 拜托,我需要一个答案,因为我快疯了,我的学校项目需要这个='(

标签: ruby sinatra haml


【解决方案1】:

从您的问题中很难判断,因为您没有提供太多信息,例如你正在使用什么 ORM。

假设您使用的是ActiveRecord

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

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

【讨论】:

  • 你是对的,对此我很抱歉。我已经通过辅助导航栏和其中的所有类别解决了它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-01
  • 2016-04-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多