Questions tagged «ruby-on-rails»

Ruby on Rails是一个用Ruby编写的开源全栈Web应用程序框架。它遵循流行的MVC框架模型,并以其“配置之上的约定”方法进行应用程序开发而闻名。

10
由于libreadline,rails控制台无法加载
我最近像这样重新安装了ruby 2.1.2,因为我想安装gem(ruby-debug-ide) sudo rvm reinstall 2.1.2 --disable-binary --with-gcc=gcc-4.2 从那时起,bundle exec rails c 由于以下错误,我无法使用加载控制台: /Users/ohad/.rvm/gems/ruby-2.1.2@aaa/gems/activesupport-3.2.11/lib/active_support/dependencies.rb:251:in `require': dlopen(/Users/ohad/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/readline.bundle, 9): Library not loaded: @@HOMEBREW_PREFIX@@/opt/readline/lib/libreadline.6.dylib (LoadError) Referenced from: /Users/ohad/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/x86_64-darwin13.0/readline.bundle 尝试过brew uninstall readline,brew install --build-from-source readline哪个可行,但不能解决我的问题。

8
如何在Rails中做静态内容?
寻找不同的选择: 一种是只将静态页面放在public /文件夹中,但是我确实希望布局/应用程序中的标头保持一致。 我试过了,但是出现错误: # in routes.rb: map.connect '*path', :controller => 'content', :action => 'show' # in content_controller.rb: def show render :action => params[:path].join('/') end 我想要的是一种简单的方法,只需创建一个.rhtml,即可将诸如常见问题,联系方式,tos,隐私和其他非应用程序类型页面等内容组合在一起。谁做的?

7
如何在RSpec中多次说“ any_instance”“ should_receive”
我在rails中有一个导入控制器,该控制器将具有多个记录的多个csv文件导入到数据库中。我想在RSpec中测试是否通过使用RSpec实际保存了记录: <Model>.any_instance.should_receive(:save).at_least(:once) 但是我得到错误说: The message 'save' was received by <model instance> but has already been received by <another model instance> 人为的控制器示例: rows = CSV.parse(uploaded_file.tempfile, col_sep: "|") ActiveRecord::Base.transaction do rows.each do |row| mutation = Mutation.new row.each_with_index do |value, index| Mutation.send("#{attribute_order[index]}=", value) end mutation.save end 是否可以使用RSpec对此进行测试,或者有任何解决方法?

3
最佳实践:尝试与救援
什么是最佳做法?使用try还是使用rescue? user.try(:email) VS user.email rescue nil post.try(:comments).try(:first).try(:author) VS post.comments.first.author rescue nil 使用这些方法有什么区别吗?

16
如何在Ruby中替换带重音符号的拉丁字符?
我有一个ActiveRecord模型,Foo其中有一个name字段。我希望用户能够按名称搜索,但我希望搜索忽略大小写和任何重音符号。因此,我还要存储一个canonical_name要搜索的字段: class Foo validates_presence_of :name before_validate :set_canonical_name private def set_canonical_name self.canonical_name ||= canonicalize(self.name) if self.name end def canonicalize(x) x.downcase. # something here end end 我需要填写“此处的内容”以替换带重音符号的字符。有没有比这更好的了 x.downcase.gsub(/[àáâãäå]/,'a').gsub(/æ/,'ae').gsub(/ç/, 'c').gsub(/[èéêë]/,'e').... 而且,就此而言,由于我没有使用Ruby 1.9,所以无法将这些Unicode文字放入我的代码中。实际的正则表达式看起来丑陋得多。


4
Ruby字符串到日期的转换
我在Ruby on Rails中遇到了一个问题。我想将格式字符串转换Tue, 10 Aug 2010 01:20:19 -0400 (EDT)为日期对象。 无论如何,我可以做到这一点。 这是我所寻找并尝试的以下方法,但是没有运气: Date.strptime(updated,"%a, %d %m %Y %H:%M:%S %Z") 慢性解析器 Ruby:将字符串转换为日期 使用Ruby从文本解析日期 这个你能帮我吗。



8
如何使用Capybara确认JavaScript弹出窗口?
我已经尝试了几个在网上找到的示例,但是没有运气。我希望确认删除链接的确认消息。最后的尝试是下面的代码,但是导致Capybara :: NotSupportedByDriverError错误。 def confirm_dialog page.evaluate_script('window.confirm = function() { return true; }') end

3
Rails-在link_to中传递参数
我的帐户索引页面列出了所有帐户,每个帐户都有指向“ +服务”的链接;这应将用户定向到/ my_services / new页面,并根据在Accounts索引页面上单击的链接,用适当的ID预先填充account_id字段。 我在每个页面的底部都有debug(params),根据我的尝试,除了/ controller和:action外,/ my_services / new页面的参数中没有显示其他内容。 我一直在尝试的链接是这样的: link_to "+ Service", "my_services/new", :account_id => acct.id 然后,我在服务控制器中也有逻辑: def new @my_service = MyService.new if params[:account_id] @my_service.account_id = params[:account_id] end end 有人可以帮助您采取适当的方法吗?我还无法通过我尝试过的一些讨厌的小技巧来解决这个问题。 编辑 事实证明,如果将来有人在看这个答案,嵌套资源(可能带有shallow: trueroutes.rb中的选项)似乎是解决之道。我这部分的routes.rb现在看起来像这样: resources :accounts, shallow: true do resources :services end 我的链接现在看起来像这样: <%= link_to "+ Service", new_service_path(:service => …

7
从本地网络上的另一台计算机访问webrick / rails
我有一个运行在localhost:3000上的Rails应用程序。我希望从同一网络上的另一台计算机访问它。我觉得我以前很轻松地做到了,但这让我有些悲伤。我可以ping通计算机的IP,但在浏览器中打ip:3000无效。我也尝试发射rails s -b ipaddress,没有运气。 有什么建议吗?

4
在Rails中建立多对多关系
这是我要实现的目标的简化示例,对于Rails来说我还很陌生,并且努力使自己了解模型之间的关系。 我有两个模型,User模型和Category模型。用户可以与许多类别相关联。一个特定的类别可以出现在许多用户的类别列表中。如果删除了特定类别,则应在用户的类别列表中反映出来。 在此示例中: 我的Categories表包含五个类别: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ID | 姓名| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 1 | 体育| | 2 | 新闻| | 3 | 娱乐| | 4 | 技术| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 我的Users表包含两个用户: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ID | 姓名| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 1 | 用户A | | 2 | 用户B | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ UserA可以选择“体育和技术”作为他的类别 用户B可以选择新闻,体育和娱乐 运动类别已删除,UserA和UserB类别列表均反映了删除 我开玩笑地创建了一个UserCategories表,其中包含类别和用户的ID。通过这种方式,我可以查找类别名称,但是无法级联删除,因此整个解决方案似乎都是错误的。 我发现的使用belongs_to和has_many函数的示例似乎在讨论映射一对一关系。例如,对博客文章的评论。 …

3
如何直接从Rails控制器返回HTML?
我的一个模型对象有一个“文本”列,其中包含网页的完整HTML。 我想编写一个控制器动作,该动作只是直接从控制器返回此HTML,而不是像在控制器上其余动作一样通过.erb模板传递它。 我的第一个想法是将该操作放入新的控制器中,并在模板中创建一个具有空布局的自定义.erb<%= modelObject.htmlContent %>模板-但我想知道在Rails中是否有更好的方法可以做到这一点。

1
如何在Jekyll中链接if语句?
我在Jekyll中使用逻辑运算符,但无法正常工作。 第一页,第二页和第三页都使用相同的布局(作为多语言解决方案的一部分,效果很好,但需要逻辑循环来进行某些布局控制,以保持干燥。) 这是代码: {% if page.type == "post" %} {% include post.html %} {% elseif page.class == "contact" %} {% include contact.html %} {% else %} {{ content }} {% endif %} 如果我将其分解为一个else和一个if else设置,并带有任意两个树,则一切正常。但是,一旦我使用第三个条件,它就会中断。我只能与Jekyll一起使用两个条件吗?我可以进行重组以使case操作员适用,但是我更希望在这里了解基本问题。谢谢大家

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.