Tag: ruby on rails 3

如何使用Ruby on Rails将数据从控制器传递到模型?

如何将数据从控制器传递到模型? 在我的application_controller我获取用户的位置(州和城市)并包含一个before_filter ,以便通过所有控制器访问它 before_filter :community def community @city = request.location.city @state = request.location.state @community = @city+@state end 然后我尝试通过以下方法将控制器中检索到的数据添加到模型中: before_save :add_community def add_community self.community = @community end 但是,数据从未从控制器传递到模型。 如果我使用: def add_community @city = request.location.city @state = request.location.state @community = @city+@state self.community = @community end request.location.city和request.location.state方法不能从模型中运行。 我知道其他一切都有效,因为如果我将@city和@state定义为字符串,在def_community下,那么一切正常,除了我没有动态变量,只是放在模型中的字符串。 此外,我知道请求在控制器/视图中工作,因为我可以让它们显示正确的动态信息。 问题只是将数据从控制器传递到模型。 非常感谢你的时间。

RVM和Jenkins设置

我是Jenkins CI的新手。 我在我的远程Jenkins中安装RVM,当我执行下面的shell时。 #!/bin/bash -x source ~/.bashrc rvm use 1.9.3@rails-3.2.3 我得到以下错误。 + source /var/lib/jenkins/.bashrc ++ PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/var/lib/jenkins/.rvm/bin:/var/lib/jenkins/.rvm/bin + rvm use 1.9.3@rails-3.2.3 RVM is not a function, selecting rubies with ‘rvm use …’ will not work. You need to change your terminal settings to allow shell login. Please visit https://rvm.io/workflow/screen/ for example. 这是什么意思? 我什么都不知道。 请帮我。 更新:我尝试下面的脚本但我仍然得到错误: #!/bin/bash […]

Rails gem rails3-jquery-autocomplete如何按用户范围

我正在使用Rails gem rails3-jquery-autocomplete来为post添加类别。 我想将搜索限制为仅在结果中包含属于当前用户或post作者的类别。 文档说我可以指定范围: :示波器 添加了使用范围的选项。 传递数组中的范围。 例如:scopes => [:scope1,:scope2] 但我不确定如何在这里传递用户ID? 这似乎是一个comon场景,我错过了一些明显的东西吗? 我找到了一个建议修改get_item方法的答案,但这似乎打破了自动完成 确定rails3 jquery自动完成插件的结果范围

我如何按天而不是按日期分组?

好的,我有 >> list = Request.find_all_by_artist(“someBand”) => [#<Request id: 1, artist: "someBand", song: "someSong", venue: "Knebworth – Stevenage, United Kingdom", showdate: "2011-07-01", amount: nil, user_id: 2, created_at: "2011-01-01 18:14:08", updated_at: "2011-01-01 18:14:09"…………. 然后 list.group_by(&:created_at).map {|k,v| [k, v.length]}.sort => [[Sat, 01 Jan 2011 18:14:08 UTC +00:00, 10], [Sun, 09 Jan 2011 18:34:19 UTC +00:00, 1], [Sun, 09 […]

ActionView :: Template :: Error(不兼容的字符编码:UTF-8和ASCII-8BIT)

我使用Ruby 1.9.2,Rails 3.0.4 / 3.0.5和Phusion Passenger 3.0.3 / 3.0.4。 我的模板是用HAML编写的,我使用的是MySQL2 gem。 我有一个控制器动作,当传递一个具有特殊字符的参数,如变音符号,给我以下错误: ActionView::Template::Error (incompatible character encodings: UTF-8 and ASCII-8BIT) 该错误指向我的HAML模板的第一行,其中包含以下代码: 我的理解是,这是因为我有一个UTF-8字符串与ASCII-8BIT字符串连接,但我不能在我的生活中弄清楚ASCII-8BIT字符串是什么。 我已经检查过动作中的参数是用UTF-8编码的,我已经添加了一个编码:UTF-8声明到HAML模板的顶部和ruby文件,我仍然得到这个错误。 我的application.rb文件中也有一个config.encoding = “UTF-8″声明,以下所有结果都是UTF-8: ENV[‘LANG’] __ENCODING__ Encoding.default_internal Encoding.default_external 这是踢球者:我无法在开发或生产中使用独立乘客或杂种在我的Mac-OSX上本地重现此结果。 我只能在linux上运行nginx + passenger的生产服务器上重现它。 我已经在生产服务器的控制台中validation了后面提到的命令都是UTF-8的结果。 您是否遇到过同样的错误?您是如何解决的?

停止设置清除会话

当用户通过标准Devise控制器注销时,Devise会破坏整个会话存储,而不仅仅是它自己的数据。 有什么方法可以避免这种行为吗? 我还有其他不相关的数据应该保留。 session[:my_var] = “123” 通过设计退出… puts session[:my_var] # => nil

如何从另一个目录中请求ruby文件

我想要一个我在另一个文件中创建的rake文件。 这两个文件位于两个不同的目录中。 我要求在我的第一个文件的顶部,在require之后的引号内有第二个文件的名称。 它告诉我它无法加载这样的文件。 这是否意味着因为它在不同的目录中找不到它? 我试着坚持第二个文件的完整路径,但它仍然无法加载文件。 有谁知道如何将第二个文件加载到第一个文件中? 提前致谢

带有has_many的counter_cache:通过

我刚刚创建了一个counter_cache字段,控制器看起来像这样。 @users = User.where(:sex => 2).order(‘received_likes_count’) User.rb中的关联是 has_many :received_likes, :through => :attachments, :source => :likes, :dependent => :destroy 问题是counter_cache是​​在Like.rb的belongs_to中声明的,我不知道如何告诉它是为了has_many:通过关联。 belongs_to :user, :counter_cache => :received_likes

为什么我们要避免在rails中使用类变量@@?

为什么我们要避免在rails中使用类变量@@? 这有什么安全漏洞吗? 请回答,因为我是新的rails。 我正在使用实例变量@variable_name 。 我试过一次@@variable_name 。 我只知道类变量是, 类变量在对象之间是可共享的 但我真的想知道为什么我们要避免在rails中使用类变量@@?

Google地图,Ruby on Rails,使用一个标记缩放级别

我正在使用apneadiving / Google-Maps-for-Rails添加谷歌地图支持(感谢真棒gem) 我发现了一个轻微的故障,这很可能是我的错。 当有多个标记时,auto_zoom很有效。 但是,当只有一个标记时,它会放大到不同的最大级别。 “zoom”仅在auto_zoom为false时有效,因此这不是我想要的。 因此,您可以使用“maxZoom”,但现在用户无法手动放大超出该点,这不是我想要的。 有没有解决的办法? 我的解释有意义吗? 这是Google Maps API的限制吗? 谢谢…