在将具有参数的范围应用于模型时使用will_paginate

我正在尝试创建一个搜索框,可用于按名称搜索用户。 我遇到的问题是我也想使用will_paginate gem。 这行代码@users = User.name(params[:name]).paginate(page: params[:page]) if params[:name].present? 是我认为问题所在。 class UsersController < ApplicationController def index @users = User.all.paginate(page: params[:page]) @users = User.name(params[:name]).paginate(page: params[:page]) if params[:name].present? end class User (name) { where(“name ILIKE ?”, “%#{name}%”)} end users/index.html.erb “Search by name” %>

如何更改其中一个gem中加载gem的顺序

我有两个gem“CoreGem”和“AddonGem”。 Addon Gem增加了额外的function,将覆盖核心gem。 如何确保如果添加第二个gem,它将覆盖第一个gem的视图和资产。 到目前为止,它在添加到主应用程序时起作用: config.railties_order = [ :main_app, AddonGem::Engine, :all] 但我想从AddonGem中做到这一点。 谢谢

Facebook Graph API和考拉:如何在城市中查找地点

使用带考拉的Rails应用程序,如何获取城市内的餐馆和地点列表? 以供参考: graph = Koala::Facebook::API.new(@current_user.oauth_token) graph.get_object(“me”)[“location”][“name”] 让我成为用户的城市。

Heroku-无法在任何来源中找到paperclip-3.1.3

今天早上,当我尝试更新我的网站时,heroku没有让我推送应用程序。 这是我得到的信息。 Fetching gem metadata from http://rubygems.org/……. Fetching gem metadata from http://rubygems.org/.. Fetching git://github.com/drhenner/nifty-generators.git Could not find paperclip-3.1.3 in any of the sources ! ! Failed to install gems via Bundler. ! ! Heroku push rejected, failed to compile Ruby/rails app ! [remote rejected] master -> master (pre-receive hook declined) 我的gem文件中没有paperclip- 3.1.3。 我不确定为什么它正在寻找paperclip 3.1.3这是我的gem文件 source […]

Rails:将axlsx视图生成的文件发送到模型

我使用axlsx gem生成excel电子表格。 我正在尝试将生成的电子表格发送到模型以进行压缩。 此方法使用其他一些文件来压缩excel文件。 我的模型中的方法如下所示: def zipper tempfile = Tempfile.new children = self.children_with_forms Zip::OutputStream.open(tempfile) do |stream| children.each do |child| directory = “#{child.wide_reference[0,3]}/” if child.model_name == “Position” stream.put_next_entry(“#{child.volume} #{child.title} TOC.xlsx”) stream.print IO.read(Rails.application.routes.url_helpers.toc_path(format: :xlsx, position_id: child.id)) end stream.put_next_entry(“#{directory}#{child.wide_reference}-#{child.short_name}-#{child.title.truncate(15, omission:”)}.docx”) stream.print IO.read(child.download_form.path) end end tempfile end 我遇到问题的部分是: if child.model_name == “Position” stream.put_next_entry(“#{child.volume} #{child.title} TOC.xlsx”) stream.print IO.read(Rails.application.routes.url_helpers.toc_path(format: :xlsx, position_id: […]

使用Rails中的字典更新所有内容

我有一个类似CMS的小程序,有多个pages就像博客文章。 每个page都有内容和一个position整数,用于标识它们在页面上的显示顺序。 在我的管理员方面,我有一个可拖动的页面列表,我可以重新排序,类似于wordpress订单插件。 该页面用作函数,并正确地将拖动位置的值分配给每个page 。 但是,由于所有可排序pages都有自己的forms,我不能一次提交所有页面 – 一次只能提交一个。 举个例子,我的代码目前看起来像这样: 因为我可以将每个page_id绑定到其新position ,是否可以在新哈希中提交这些值以在控制器中一次更新? 我该怎么做呢? 有没有更好或更简单的方法来做到这一点? 谢谢。

如何计算方法中的方法

如果我们创建一个名为days_left_in_current_level的新方法,那么我们需要在那里放一些,以便我们可以计算current_level中剩余的天数? habit.rb def current_level return 0 unless date_started def committed_wdays committed.map do |day| Date::ABBR_DAYNAMES.index(day.titleize) end end def n_days ((date_started.to_date)..Date.today).count do |date| committed_wdays.include? date.wday end – self.real_missed_days end case n_days # 1 – 6 represent the different levels when 0..9 1 when 10..24 2 when 25..44 3 when 45..69 4 when 70..99 5 else 6 end […]

如果它是I18n,如何从根URL中删除参数

过时(至少对谷歌来说) 最近我研究了一下SEO,发现搜索引擎在某种程度上“不喜欢”URL中的参数。 可理解,因为它们不是真正的人类可读或往往不是永久性的。 现在的问题是,如果我按照Rails指南设置I18n然后想要链接到root_path怎么办? 它链接到根,但在URL中添加了?locale=en 。 所以http://www.example.com/?locale=de 。 即使SEO不再受此影响,我认为如果URL看起来像http://www.example.com/en而不是http://www.example.com/?locale=en ,它看起来会更好。

如何在Aptana Studio 3.0.9中使用bundle exec来运行调试器?

Aptana似乎从sh shell开始。 所以我试图切换到zsh ,并执行命令来启动rails应用程序。 我已经更改了我的调试可执行文件,以便它运行带有以下内容的unix可执行文件: #!/usr/bin/env ruby exec(“zsh | (echo $SHELL && [[ -s ‘$HOME/.rvm/scripts/rvm’ ]] && source ‘$HOME/.rvm/scripts/rvm’ && rvm use 1.8.7@tinderbox && (bundle exec script/server -p3001 &))”) 因此,当我从工具栏上的调试菜单中单击我的调试可执行文件时,会出现调试透视图,并显示它 myApp [Ruby Application] Ruby /usr/bin/ruby 正在运行但尚未终止。 但当我进入我的浏览器并输入0.0.0.0:3001时,我得到“哎呀!谷歌Chrome无法连接到localhost:3001” – 这意味着服务器无法运行。 我将可执行文件的输出设置为我桌面上的文件,这是每次运行时发生的事情: Fast Debugger (ruby-debug-ide 0.4.16, ruby-debug-base 0.10.4) listens on 127.0.0.1:55306 /bin/zsh 注意:我使用bash和zsh获得相同的结果 到底是怎么回事? 以及如何让我的命令工作?

在提交和重新加载页面后,我的表单复选框如何保持其状态?

我有一个由复选框组成的表单,它在索引页面上过滤记录,如何在表单提交并重新加载页面后,如何使表单中的复选框保持其已检查状态? 我已经使用jQuery-UI使复选框看起来更好。 我是任何类型的编程超级新手,javascript运气不佳。 index.html.erb $(function() { $(“.areas”).buttonset(); }); $(function() { $( “button, input:submit, a”, “.filter_form_button” ).button(); $( “a”, “.form_filter_button” ).click(function() { return false; }); }); :get, :id => ‘filter_form’ do %> “area-#{a.id}” %> <label for="area-“> 任何帮助都非常感谢!