目前我的主页(index.html.erb)显示过去24小时内加载的所有用户图片,这是帖子的一部分。但是,我想添加一个表单,允许用户根据类别和上传日期对图像进行排序。 (例如,带有类别音乐的图像,在过去一个月内上传)我了解如何查询数据库,但我不知道如何获取用户输入。当我使用简单的表单创建表单时:
<%= simple_form_for @posts do |f| %>
它抛出一个错误,说我不能使用一个对象。我也尝试了ajax,但它似乎与paperclip gem一起使用得很好,而且我宁愿在后端完成它。我希望我能很好地解释我的问题。如果没有随意发表评论,我会随时回复。提前致谢。
Post Controller:
def index
@posts = Post.all.where(created_at:(Time.now - 1.day)..Time.now)
end
Post表的架构:
create_table "posts", force: :cascade do |t|
t.string "title"
t.string "instagram"
t.text "description"
t.string "category"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "user_id"
t.string "image_file_name"
t.string "image_content_type"
t.integer "image_file_size"
t.datetime "image_updated_at"
答案 0 :(得分:0)
您可以创建一个表单,该表单将使用相同的HTTP谓词(GET)提交相同的操作(我假设posts_path
基于控制器/操作):
<%= form_tag posts_path, method: :get do =>
…
<%= submit_tag "Search" %>
<% end %>
然后,在form_tag
块中,添加您要用于过滤的字段,例如:
<%= text_field_tag :category %>
然后,您可以在控制器中有条件地过滤掉此字段:
@posts = @posts.where(category: params[:category]) if params[:category].present?