Tag: ruby on rails

Rails 4:嵌套表单上的重复file_field输入

我有一个模型“post”和一个模型“照片”。 模型post具有来自照片的嵌套表单以上传具有关联的图像。 上传工作正常,但每次我去编辑post时,我都会为每个上传的图片添加新的输入,并且还有一个输入来上传新图像。 我想只输入上传新文件并隐藏或不加载其他文件。 这是我的代码: 控制器: module Admin class SeminovosController true, ‘max-stale’ => 0 end # GET /seminovos/1 # GET /seminovos/1.json def show end # GET /seminovos/new def new @seminovo = Seminovo.new @seminovo.photos.build @seminovo.photos end # GET /seminovos/1/edit def edit @seminovo.photos.build @seminovo.photos end # POST /seminovos # POST /seminovos.json def create #@seminovo = Seminovo.new(seminovo_params) respond_to […]

使用Rpush Gem Ruby on Rails向App发送通知

我试图使用Rpush Gem在我的应用程序中实现推送通知。 这是迄今为止我尝试过的。 if @push_notification.present? else app = Rpush::Apns::App.new app.name = “ios_app” app.certificate = File.read(“config/apns-dev.pem”) app.environment = “development” # APNs environment. app.password = “” app.connections = 1 app.save! end n = Rpush::Apns::Notification.new n.app = Rpush::Apns::App.find_by_name(“ios_app”) n.device_token = session[:push_notification_token] n.alert = “hi im alert!” n.data = { foo: :bar } n.save! 这会将通知保存到数据库中。 我想知道如何发送此通知。

无法在Heroku上部署Ruby on Rails应用程序?

我已经在Heroku上成功部署了Ruby on Rails应用程序。 但是,当我访问Heroku提供的URL时,错误说:“您要查找的页面不存在。” url – https://cryptic-waters-2558.herokuapp.com/ 请帮忙。

Rails路由基于条件

我有三个角色:Instuctor,Student,Admin,每个角色都有一个带有“home”视图的控制器。 所以这很好, get “instructor/home”, :to => “instructor#home” get “student/home”, :to => “student#home” get “admin/home”, :to => “admin#home” 我想写一个类似于下面的虚荣url,它会根据user_id的角色路由到正确的主页。 get “/:user_id/home”, :to => “instructor#home” or “student#home” or “admin#home” 我该如何做到这一点?

你能用Paperclip识别图像的当前尺寸吗?

我刚刚更新了图像缩略图的尺寸,并且一直致力于更新28,000个照片对象。 不幸的是,这种过程需要很长时间才能完成。 在这个过程中,一些被拒绝,一些进程被取消。 有没有办法确定图像缩略图是否具有当前尺寸?

在rails中创建唯一对象

所以我通过编写一些简单的应用程序来学习rails。在那个应用程序中我有两种类型的对象:Tasks和Projects.Sense是所有这些对象都可以由用户创建,用户必须能够操纵它们等等。每个任务belongs_to项目和项目has_many任务。但是当我创建新项目时 – 它已经拥有来自所有其他项目的所有任务,所以它看起来像: 这个’123’任务是通过简单地将任务添加到’Project’创建的,但同样的任务仍然出现在’Another project’中。如何解决这个bug并使我的任务独一无二?我认为必须在任务或项目模型中添加一些东西但是我不知道应该添加什么。 以下是相应的型号和控制器: Task.rb class Task < ActiveRecord::Base belongs_to :project end Project.rb class Project < ActiveRecord::Base belongs_to :user has_many :tasks, dependent: :destroy validates :name, presence: true, uniqueness: true end tasks_controller.rb class TasksController < ApplicationController before_action :set_task, only: [:show, :edit, :update, :destroy] # GET /tasks # GET /tasks.json def index @tasks = Task.all […]

ActionController :: Base.relative_url_root的替代品是什么?

我正在将2.x rails应用程序移植到rails3; 我们称之为foo-app。 Foo-app是更大的rails应用程序的一部分,位于main_rails_app.com/foo-app。 以前我们只是在foo-app生产配置中设置以下内容,以确保我们的foo-app路由正常工作: ActionController::Base.relative_url_root = “/foo-app” 但是,使用rails3,我现在得到: DEPRECATION WARNING: ActionController::Base.relative_url_root is ineffective. Please stop using it. 我已经将配置条目更改为以下内容: config.action_controller.relative_url_root = “/foo-app” 这主要是因为所有对外部资源(javascript / css / images)的调用都将使用/ foo-app。 但是,我的路线没有任何改变,换句话说,foo-app root_path给我’/’当我期待’/ foo-app’。 两个问题: 什么是ActionController :: Base.relative_url_root的替代品 如果是config.action_controller.relative_url_root,那么为什么我的路由没有反映我设置的relative_url_root值?

Rails 4 – Pundit,Scopes:入门

在过去2年多的努力中,我真的在努力学习如何使用专家。 我正在尝试编写范围策略,以便不同的用户可以根据他们适合的范围类接收对象。 我之前曾就同一主题提出了几个问题,但我没有接近解决方案。 我最近的问题是: 这里 , 这里 , 这里 , 这里 , 这里和这里 。 还有其他几个,但这些给出了一般情况,我正在努力解决如何开始的基本原理。 我有一百万个入门问题,并意识到经过4年的尝试(每天–10多个小时),我在尝试学习编码方面并没有真正走得太远,但我面临的当前问题是这个错误: wrong number of arguments (given 2, expected 0) 它指向我将授权@eoi行放在我的控制器中的任何地方。 我之前在这里询问过这个错误 我最初放入set_eoi方法如下: def set_eoi @eoi = Eoi.find(params[:id]) authorize @eoi end 我在控制器中的before操作中使用了该方法: before_action :set_eoi, only: [:show, :edit, :update, :destroy] 当我找到这篇文章的答案时,我停止了这样做, 该post说在之前的行动中不使用授权(即使权威的Go Railsvideo教程显示这样做)。 然后,我将授权调用移动到show动作本身: def show authorize @eoi end 这会产生与在before操作中使用它相同的错误。 请有人帮助您入门。 我目前的设置如下: […]

如何使用Devise根据角色重定向用户的主(根)路径?

我正在开发一个项目管理应用程序,在应用程序中,我有project_managers和客户端 。 我正在使用Devise和CanCan进行身份validation/授权。 在登录后的什么时候我应该将用户重定向到他们自己的特定控制器/布局/视图? 有没有办法检查routes.rb current_user.role并根据它们是项目经理还是客户端设置root(或重定向)? 这是我在Devise某处可以做出的改变吗? 在此先感谢您的帮助! – 标记

form_for使用rails渲染而不是发布

我有一个很长的表单,自动填充来自我们数据库的信息(基于用户提供的部分信息)。 当用户validation信息并重新提交表单时,信息应保存为用户。 表单 – qualifying_events – 是views / shared文件夹中的部分。 自动填充它的数据由qualifying_events_controller作为create方法的一部分呈现。 部分用于在由用户控制器呈现的视图/用户页面中进行validation。 用户输入的初始部分信息 – 在同一页面上的类似部分 – 正确保存。 这是表单的顶部: 这是错误消息: No route matches [GET] “/qualifying_events” 这是我尝试过的: 1.显式添加到config / routes文件的路由,尽管已经显示我是否运行了rake路由: post ‘qualifying_events_path’ => ‘qualifying_events#create’ 2.更改form_for语言以显式调用’post’: post) do |f| %> 我仍然得到相同的错误消息。 由于我有其他使用相同代码保存到数据库的表单,因此当从数据库填充表单并且想要重新保存信息时,我必须假设有些更改。 我正在使用设计gem,所以我看了注册#编辑代码,希望我可以遵循以下格式: 不幸的是,这种方法也不起作用。 对于’完整性’,这是qualifying_events_controller代码: def create @user = current_user @qualifying_event = current_user.qualifying_events.build(qualifying_event_params) if @qualifying_event.validated.nil? # Match partial course […]