Tag: ruby on rails 4

开始API缓存

有人能指出我正确的技术与缓存API响应有关。 我已经通过许多现有的问题,指南,post,但某些关键因素不能正常工作。 模型 class Cleartrip include HTTParty debug_output $stdout base_uri “api.staging.cleartrip.com/air/1.0/search” headers ‘X-CT-API-KEY’ => ‘xxxxxxxxxxxxxxxxxxxxxxxxxxx’ format :xml def self.get_flight(url) Rails.cache.fetch(url, :expires => 1.hour) do response = get(url) if response.success? response else raise response.message end end end end 调节器 @flight = Cleartrip.get_flight(“?from=DEL&to=BLR&depart-date=2014-08-10&adults=1&children=0&infants=0”) Development.rb config.cache_classes = false # Do not eager load code on boot. config.eager_load = […]

使用Ransack对父级父级的属性进行排序

我知道如何使用Ransack对于父属性的令人敬畏的sort_link方法,但是当我将相同的逻辑外推到祖父母的属性时,它不起作用(我可以点击链接,不进行排序)。 层次结构如下: Signup has_many Request has_many Transaction 。 我正在从Transaction透视图中搜索。 控制器代码: def index @q = Transaction.ransack(params[:q]) @transactions = @q.result.includes(:request => :signup) end 查看代码: 顺便提一下,搜索代码(例如:request_returndate_eq )很好,它只是排序不起作用。 型号代码: class Signup < ActiveRecord::Base has_many :requests end class Request < ActiveRecord::Base belongs_to :signup has_many :transactions, dependent: :destroy end class Transaction < ActiveRecord::Base belongs_to :request end 控制台输出 在第一次单击以升序排序(尽管任何单击它总是产生200响应,即使视图实际上没有更改) Started GET “/admin/transactions?q%5Bs%5D=requests.signups.email+asc” […]

Feedjira没有添加内容和作者

我刚刚开始使用Rails并且最近遵循了Sitepoint指南来构建RSS Feed应用程序 。 我按undefined method ‘html_safe’ for nil:NilClass按照说明操作,但是得到错误的undefined method ‘html_safe’ for nil:NilClass 。 我查看了数据库,似乎Feedjira没有将content或author属性解析到数据库中。 快速谷歌之后,我在8月13日的Github页面#178和#176上发现了以下问题,但鉴于重大问题,这让我感到惊讶,因为它没有。 这可能是我的代码中的一个错误,可以在这里找到,但我已经检查过,并且不认为它是。 有谁知道我做错了什么? 我已按照问题#176中的建议更改了feedjira文档中的self.feed_classes,但它仍然没有提取任何内容。

RSpec控制器测试错误:控制器没有实现方法

我为Devise注册编写了一些自定义代码。 即,一旦用户点击“注册”按钮,Devise的通用代码可确保正确保存用户。 但是,我想进入并确保用户获得相关的Stripe客户帐户。 下面的大部分代码来自Devise,除了我添加的几行代码: class Users::RegistrationsController < Devise::RegistrationsController def create build_resource(sign_up_params) resource.save yield resource if block_given? if resource.persisted? #### If statement below is the key custom code #### if create_stripe_customer #### Back to default Devise code #### if resource.active_for_authentication? set_flash_message :success, :signed_up if is_flashing_format? sign_up(resource_name, resource) respond_with resource, location: after_sign_up_path_for(resource) else set_flash_message :notice, :"signed_up_but_#{resource.inactive_message}" if […]

如何在不在rails中创建路由的情况下将操作链接到按钮?

我在我的Rails应用程序中有一个投票按钮,并允许用户投票我创建了一个连接按钮和相应操作的路线。 路线: /posts/1/vote_up 但是在其他ROR网站上,我一直在分析他们可以在不创建路线的情况下完成同样的事情(或者至少在没有向公众用户展示的情况下)。 一个例子是Producthunt ,有一个投票按钮,但当你将鼠标hover在它上面时,没有路由或URL映射到它。 怎么做到这一点? 我可以将操作链接到按钮而不创建路径吗?

使用collection_check_boxes时遇到困难

我有一个模型Project ,其中有许多引用Genres ProjectGenres : class Project < ActiveRecord::Base has_many :project_genres accepts_nested_attributes_for :project_genres, allow_destroy: true has_many :genres, through: :project_genres end class ProjectGenre < ActiveRecord::Base belongs_to :project belongs_to :genre end class Genre < ActiveRecord::Base has_many :project_genres has_many :projects, through: :project_genres end 当我创建一个项目时,我想勾选它所附属的相应类型。 然后,当他们提交此表单时,它应该在ProjectGenre表中创建适当的记录。 我的表格中有以下内容: 我不确定我在控制器中做了什么? 我在params[:project][:project_genres]传回了一个数组(虽然它传回了一个额外的空条目),但是我应该在这里自己创建嵌入对象的驴工作,或者我错过了什么能够自动创建这些吗?

rails控制器在使用shell脚本运行casperjs测试用例时返回nil响应

我正在使用带有rails应用程序的casper测试用例,用于运行测试用例我正在使用以下命令。 result = `cd #{Rails.root.join}/casper && casperjs test #{params[:file]}.js` 上面提到的代码在开发环境(webrick)上工作得很好但是如果我在staging(nginx + passenger)上运行它,那么我在几秒钟内得到nil响应意味着脚本是异步运行的,我需要同步运行它以便我可以向客户端发送JSON响应。 我用来提供响应的方法如下。 def test @result = `cd #{Rails.root.join}/casper && casperjs test #{params[:file]}.js` render json: JSON.parse(@result) end

在Rails中validationGooglebot

我希望在我的rails应用程序中实现First Click Free 。 Google提供了有关如何validationgooglebot是否正在此处查看您网站的信息 。 我一直在寻找Rails是否有任何东西可以做到这一点,但我一直找不到任何东西。 首先,有人知道什么吗? 如果没有,是否有人能指出我正确的方向如何实施他们在该页面中建议的如何validation? 此外,在该解决方案中,每次尝试检测谷歌时都必须进行查找,如果我必须在每次加载页面时都这样做,那么它似乎会成为一个重大的性能影响? 我可以缓存IP,如果它已经过validation,但谷歌已经声明他们的IP改变,所以在某些时候它可能不再属于他们。 虽然它可能不会定期发生,但它可能不是那么大的问题。 非常感谢!!

基于Rails 4中新建和编辑表单的控制器操作的条件

我有一个在新视图和编辑视图中呈现的表单: 由于我的编辑forms应该略有不同: simple_form_for([@category, @course]) ,有没有办法根据控制器动作(编辑或新建)编写条件? # if controller action is new #if controller action is edit

在Rails中显示嵌套资源的错误消息

我正在创建我的第一个应用程序,简单的博客,我不知道如何显示未通过validation的嵌套资源(注释)的错误消息。 这是为评论创建动作: def create @post = Post.find(params[:post_id]) @comment = @post.comments.create(comment_params) redirect_to post_path(@post) end 这是评论表: 我尝试过: def create @post = Post.find(params[:post_id]) @comment = @post.comments.build(comment_params) if @comment.save redirect_to post_path(@post) else render ‘/comments/_form’ end end 和: prohibited this comment from being saved: 但我不知道什么是错的。