Tag: ruby on rails 5

如何通过在Rails上启用Turbolinks的AJAX正确呈现部分?

我目前正在开发一个Rails应用程序,它必须与外部Web API通信,从结果更新DB记录并异步更新视图。 我目前在做什么 我有一个list操作,我直接从数据库中显示数据,其中包含一个在分页表中发送的电子邮件列表。 呈现视图后,我需要向应用程序(在不同的路径上)发出一个AJAX请求,该请求向外部Web API发出请求,更新数据库,然后使用包含所有电子邮件的table呈现部分,同样在原始list操作上呈现的。 以下代码处理AJAX请求: # _mail_list_loader.js.erb document.addEventListener(“turbolinks:load”, function() { $.ajax({ url: ‘/certified_mail/mail_list’, type: ‘get’, data: { page: , rut: , from: , to: , ids: } }); }); 哪个响应是.js.erb呈现实际table的部分: # mail_list.js.erb $(‘#mail-list’).html(”); _mail_list_loader.js.erb在我的application.html.erb呈现: # application.html.erb … 对于首先加载表的操作和处理AJAX请求的操作,我的控制器看起来像这样: class CertifiedMailController < ApplicationController def list if params[:page].nil? || params[:page].to_i <= 0 redirect_to action: :list, […]

Javascript没有在heroku上加载

我正在尝试部署一个应用程序。 我的javascript正在加载完美的开发,但它没有加载到生产。 即使我没有在制作中出现任何错误。 如果有人需要更多信息,请告诉我。 我已经尝试过以下命令 heroku运行rake资产:precompile –app my_app 此外,我尝试了alert()函数,它也没有在heroku上工作。 $(function() { $(document).ready(function() { $(‘.flexslider’).flexslider({ animation: “fade”, slideshowSpeed: 4000, animationSpeed: 600, controlNav: false, directionNav: true, controlsContainer: “.flex-container” // the container that holds the flexslider }); }); }); 的Gemfile source ‘https://rubygems.org’ git_source(:github) do |repo_name| repo_name = “#{repo_name}/#{repo_name}” unless repo_name.include?(“/”) “https://github.com/#{repo_name}.git” end # Bundle edge Rails instead: gem […]

如何使用解析器gem来提取我想要的代码片段?

我偶然发现了这个Parsergem 。 我想要做的是从长文件中提取一个特定的方法。 一个例子是来自Rails的has_many方法: def has_many(name, scope = nil, options = {}, &extension) reflection = Builder::HasMany.build(self, name, scope, options, &extension) Reflection.add_reflection self, name, reflection end 唯一的问题是,我需要能够提取同一方法的另一个版本(从较早的时间开始),这更加冗长和复杂。 那个版本看起来像这样: def has_many(association_id, options = {}) validate_options([ :foreign_key, :class_name, :exclusively_dependent, :dependent, :conditions, :order, :finder_sql ], options.keys) association_name, association_class_name, association_class_primary_key_name = associate_identification(association_id, options[:class_name], options[:foreign_key]) require_association_class(association_class_name) if options[:dependent] and options[:exclusively_dependent] raise […]

如何在Rails 5中为现有类添加方法?

对不起,我的英语不好。 我必须在Rails的Date类中添加一个方法,因为我想使用我的翻译日名称。 所以,我尝试过: class Date def date_of_next(day) date = Date.parse(day) delta = date > Date.today ? 0 : 7 date + delta end end 在config / initializers / date_of_next.rb中但是当我在我的控制器中调用Date.date_of_next(day)时,我得到“没有方法在日期”。 我怎样才能做到这一点? 我应该把文件放在哪里?

显示消息数组中的最后一条消息

关于我上一次尝试的答案 ,我可以实现我想要的。 一旦应用程序正常工作,我发现有些不同之处:只有创建消息并发送消息的人才会显示。 如果我回复,我没有看到答复,我知道问题。 我的消息模型有表: [:id, :user_id, :to, :body, …] :user_id与用于确定创建消息的人类似。 User 1是客户端, User 2是学生。 学生向客户发送消息。 只有我的客户端代码是这样的: #Controller Index: @messages = Message.where(to: current_user.id) # My replies are not included here .order(user_id: :asc, created_at: :desc) .select(‘distinct on (user_id) *’) 我说给我发给我的所有消息( :to )id为1 。 由于:to列,我不会看到我的回复。 我的(客户端)回复如下所示: to: #student id user_id: #client id 和学生留言: to: #client id user_id: […]

如何在Rails 5测试控制器中测试或绕过Basic Auth

我想在Rails 5中测试激活基本身份validation的控制器。 当前官方指令 (截至2018-10-14)中解释的方式由于某种原因不起作用。 问题与解答 “ 在Rails 2.2+中测试HTTP基本身份validation ”对于Rails 5来说似乎太旧了(至少对于默认值而言)。 这是重现案例的简化示例。 我通过全新安装的Rails(最新的稳定版本5.2.1)通过脚手架制作了一个文章模型和相关资源: bin/rails g scaffold Article title:string content:text 并根据官方指南将基本的authfunction添加到控制器; 那么ArticlesController是这样的,当然有效: # /app/controllers/articles_controller.rb class ArticlesController < ApplicationController http_basic_authenticate_with name: "user1", password: "pass" before_action :set_article, only: [:show, :edit, :update, :destroy] def index @articles = Article.all end end 官方说明解释了测试基本认证的方法; 你在控制器的测试文件中的setup块中添加了request.headers[‘Authorization’] ,我做了: # /test/controllers/articles_controller_test.rb require ‘test_helper’ class ArticlesControllerTest < […]

如何从服务器终止对actioncable频道的订阅?

有没有办法从服务器端(控制器)终止对任何特定使用者的特定通道的订阅,以便可以调用我的咖啡脚本文件中的断开连接回调?

Link_to标签显示地图模态Rails 5

当我点击地图标记时,会弹出一个模态: 我刚刚实现了一个搜索function,当我点击一个结果时,我试图获得它,所有信息的模态将像照片一样弹出。 这是我正在为该页面使用的代码: MapsController: class MapsController map.id, :number => map.number, :name => map.name, :tabid => map.tabid, :zipcode => map.zipcode, :latitude => map.latitude, :longitude => map.longitude }) end end def favorite @map = Map.new(:number => ‘Favorite Site’) @map.save redirect_to :back flash[:success] = “favorited” end def show @maps = Map.find(params[:id]) end end SearchController: class SearchController map.id, :number […]

如何使用Rails 5 Migration在MySQL中添加JSON列

我正在尝试通过运行在MySQL数据库中添加一个json列: class AddStatisticsToPlayerStatistic < ActiveRecord::Migration[5.0] def change add_column :player_statistics, :statistics, :json end end 但是当我尝试运行rake db:migrate时,我收到此错误 Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘json’ at line 1: ALTER TABLE `player_statistics` ADD `statistics` json 有谁知道如何在MySQL Ver 14.14 Distrib […]

Rails 5 Mysql UUID

发现rails 5有一个原生的uuid集成 ,想尝试一下但是我收到这个错误: == 20170330041631 EnableUuidExtension: migrating ============================== — enable_extension(“uuid-ossp”) -> 0.0000s == 20170330041631 EnableUuidExtension: migrated (0.0001s) ===================== == 20170331035925 CreateUsers: migrating ====================================== — create_table(:users, {:id=>:uuid}) rake aborted! StandardError: An error has occurred, all later migrations canceled: Mysql2::Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server […]