使用自定义URL(例如http:// localhost:3000 / education_informations / new?user_id = 10)在新页面上呈现错误

我正在尝试使用新操作http:// localhost:3000 / education_informations / new?user_id = 10传递查询参数,并在其上设置表单validation。 当表单提交失败,所以它的显示错误,但url更改为http:// localhost:3000 / education_informations所以我想同样自定义url并使用user_id传递查询参数。 请帮我 控制器代码给出如下 def create @edu_info = EducationInformations.new(educational_params) if @edu_info.save #flash[:notice] = ‘Vote saved.’ redirect_to @edu_info else render ‘new’ end end

如何重定向回我目前所在的页面?

在我的用户相册页面中,他们会看到他们上传的照片,每张照片上都有一个“默认设置”链接。 当用户点击make default ,照片的ID将存储在我的个人资料表的photo_id列中。 问题是将它们重定向回: localhost:3000/settings/photo_gallery/:id 有没有办法可以使用刚刚设置为默认照片的ID重定向回相册? Rails可以通过查看照片的ID来查找我想要重定向的相册,因为照片属于相册,相册中有很多照片吗? 我的数据库中有以下表格: 用户:有一个个人资料,有很多PhotoAlbums 个人资料:属于用户 PhotoAlbum(s):属于用户,有很多照片 图片:属于PhotoAlbum 控制器动作: def set_default_profile_photo photo = Profile.find_by_user_id(current_user.id) photo.photo_id = params[:photo_id] photo.save redirect_to “**HERE IS WHERE I’D LIKE TO REDIRECT TO THE PHOTOALBUM THE PHOTO IS IN**” flash[:success] = “Default photo set!” end 我的路线: users GET /users(.:format) {:action=>”index”, :controller=>”users”} POST /users(.:format) {:action=>”create”, :controller=>”users”} new_user […]

GitLab如何检查Grack HTTPS推送权限?

我想为GitLab开发一些function并将其添加到开源代码库中。 描述:当用户进行推送时,GitLab会检查来自提交的所有电子邮件是否都应存在于数据库中。 我想在https://github.com/gitlabhq/gitlabhq/blob/master/lib/gitlab/git_access.rb这个类中添加一些validation方法,但是这个validation在用户推送一些更改时不会调用(例如git push)起源大师)。 我研究了路由,然后找到了: https : //github.com/gitlabhq/gitlabhq/blob/master/config/routes.rb#L24 mount Grack::Bundle.new({ git_path: Gitlab.config.git.bin_path, project_root: Gitlab.config.gitlab_shell.repos_path, upload_pack: Gitlab.config.gitlab_shell.upload_pack, receive_pack: Gitlab.config.gitlab_shell.receive_pack }), at: ‘/’, constraints: lambda { |request| /[-\/\w\.]+\.git\//.match(request.path_info) }, via: [:get, :post] 安装Grack以提供对git http协议的访问。 并且Gitlab为Grack /lib/gitlab/backend/grack_auth.rb#L79提供了身份validation的钩子 但我调试了authorized_request?方法authorized_request? 并且得到了这个validation也没有调用。 问题:GitLab中哪个类validation推送? 或者可能这个function无法实现?

Wicked_pdf在开发中工作正常,但不在生产中

我一直在使用wicked_pdf在Rails中生成一些PDF,并且它在我的开发环境中工作正常,但是当我尝试在我的生产环境中生成一个错误时,我得到500错误(但我的日志中没有特定错误)。 我注意到的第一件事是wkhtmltopdf二进制文件位于我的生产盒上的不同位置,所以我将以下内容添加到我的wicked_pdf.rb初始化程序中: if Rails.env == “production” WickedPdf.config = { :exe_path => ‘/usr/bin/wkhtmltopdf’ } end 这是我在控制器中调用它的方式: def certificate @inspection = Inspection.find(params[:id]) @council = Council.find(@inspection.councilid) respond_to do |format| format.pdf do render :pdf => @inspection.slug, :show_as_html => params[:debug].present?, :margin => {:top => 0, :bottom => 0, :left => 0, :right => 0} end end end 这是我的观点的内容: # certificate.pdf.erb […]

是否可以根据单个对象对方法的响应对对象列表进行排序?

我想展示一个产品库,其中包括出售和非出售的产品。 只有我希望待售的products出现在列表的前面,而非待售的对象才会出现在列表的末尾。 我完成此任务的一个简单方法是创建两个列表,然后合并它们(一个on_sale?对象列表和一个not on_sale?对象列表): available_products = [] sold_products = [] @products.each do |product| if product.on_sale? available_products << product else sold_products << product end end 。 。 。 但是对于我现有应用程序的结构,这需要进行过多的重构,因为我的代码很奇怪(我失去了我的分页,我宁愿不重构)。 如果有一种方法可以通过我的product模型的on_sale?方法对现有的对象列表进行排序,那会更容易on_sale? 它返回一个布尔值。 是否可以更优雅地遍历现有列表并通过rails中的true或false值对其进行排序? 我只是问,因为有很多我不知道隐藏在这个框架/语言(ruby)中,我想知道他们是否在我之前完成了工作。

在添加页面时,refinerycms不起作用

尝试使用refinerycms从仪表板添加新页面时出现此错误 SQLite3 :: ConstraintException:refinery_page_translations.refinery_page_id可能不为NULL:INSERT INTO“refinery_page_translations”(“created_at”,“custom_slug”,“locale”,“menu_title”,“refinery_page_id”,“slug”,“title”,“updated_at” )价值(?,?,?,?,?,?,?,?) 与下一个gemfile gem’轨道’,’3.2.14′ group:开发,:测试做gem’sqlite3’结束 group:资产做gem’sass-rails’,’〜> 3.2.3’gem’coffee-rails’,’〜> 3.2.1′ gem’uglifier’,’> = 1.0.3’结束 gem’jquery-rails’,’〜> 2.3.0′ gem’refinerycms’,’〜> 2.1.0′

rails 3.0中的多个范围

我是Rails的初学者,我的范围有问题。 我的课程有两个范围: class Event < ActiveRecord::Base belongs_to :continent belongs_to :event_type scope :continent, lambda { |continent| return if continent.blank? composed_scope = self.scoped composed_scope = composed_scope.where('continent_id IN ( ? )', continent).all return composed_scope } scope :event_type, lambda { |eventType| return if eventType.blank? composed_scope = self.scoped composed_scope = composed_scope.where('event_type_id IN ( ? )', eventType).all return composed_scope } 结束 […]

有没有办法在Ruby中创建一个目录但是排除某些目录?

我想将一个目录全局化以后处理头文件。 但我想排除项目中的一些目录。 现在默认方式是…… Dir[“**/*.h”].each { |header| puts header } 如果它位于排除目录中,则手动检查每个标头条目似乎效率低下。

在Rails中进行通知

我想要做的是与人们在听到铁轨通知时的想法有点不同,因为我一直在阅读很多关于它的信息,但它似乎没有帮助。 我想要做的是在特定表格中创建新条目我希望某些用户(管理员)在他们的主页或他们所在的任何页面中获得通知,因为通知设备将在导航栏中。 我该怎么做呢? 我是一个中间轨道开发人员,我正在使用rails 3.2.13。 提前致谢!

我可以在Rails中使用link_to创建一系列链接吗?

我有一个我想要显示的url/标题对值列表。 (更具体地说,每个对象都有自己的链接列表,一些有0,有些有1,有些有更多。)我希望它们出现在逗号分隔的列表中。 所以我在.erb文件中写了这个: 令我惊讶的是,这显示了我想要创建的链接的HTML代码的逗号分隔列表; 也就是说,它采用了所有的尖括号和&符号编码。 为了确保高阶函数没有任何有趣的东西,我尝试了一个更为迫切的版本: <% a < 当然,结果相同。 但我不认为我滥用link_to ,因为如果我修改它 , 然后它实际上创建了链接。 它几乎就是我想要的,除了在最后一个之后还有一个额外的逗号。 是否有一些魔法在引擎盖下使用link_to使其根据输出的前进方向采取不同的行动? 有没有办法绕过那个魔法? join语义正是我想要的,我可以明确地弄清楚如何滚动自己(使用each_index,我猜)但它似乎是一个非常重的和非Ruby解决方案,必须是一个常见的问题。