Tag: ruby on rails 4

来自Rails 4中控制器的html_safe的Flash消息(安全版)

在我的控制器中,我有以下代码: format.html { redirect_to new_customer_url, notice: %Q[ A customer already exists with with this shopping id. Edit this customer #{view_context.link_to(“here”, edit_customer_url(@duplicate))}. ].html_safe 我希望能够在flash消息中包含一个链接,所以(如你所见)我将html_safe称为unescape字符串。 但是,从Rails 4.1开始,现在处理的方式不同了。 (见这里和这里 ) 在这个问题中提供了解决方案。 但是,它只是通过将html_safe调用移动到视图来实现,具有取消所有flash消息的效果。 我宁愿比这更偏执,有没有办法在控制器的flash消息中包含链接?

使用Nokogiri解析大型XML

所以我试图使用Nokogiri解析400k +行XML文件。 XML文件具有以下基本格式: *** Repeated Many Times *** 166024 Multiple epiphyseal dysplasia, Al-Gazali type Macrocephaly/macrocrania/megalocephaly/megacephaly Very frequent *** Repeated Many Times *** 这是我创建的代码,用于解析每个DisorderSign id和名称并将其返回到数据库中: require ‘nokogiri’ sympFile = File.open(“Temp.xml”) @doc = Nokogiri::XML(sympFile) sympFile.close() symptomsList = [] @doc.xpath(“////DisorderSign”).each do |x| signId = x.at(‘ClinicalSign’).attribute(‘id’).text() name = x.at(‘ClinicalSign’).element_children().text() symptomsList.push([signId, name]) end symptomsList.each do |x| Symptom.where(:name => x[1], :signid […]

通过具有范围的关联保存时丢失属性(Rails 4.0.0)

代码(Rails 4.0.0) class Track { where(:artist_tracks => { :artistic_role_id => 1 }) }, :through => :artist_tracks, :source => :artist end class ArtistTrack < ActiveRecord::Base belongs_to :artist belongs_to :track belongs_to :artistic_role end class Artist :artist_tracks end 寻找作品 # artist_tracks.artistic_role_id is properly set to “1” 2.0.0p195 :003 > Track.last.owning_artists Track Load (1.1ms) SELECT “tracks”.* FROM “tracks” ORDER […]

Rails ActiveRecord创建或查找

我正在开发一个Rails 4应用程序,并在我的post方法中为api我想根据用户尝试创建的内容找到记录,如果它不存在则创建它,如果它确实更新了它的参数具有。 我编写了一些实际执行此操作的代码,但需要执行一些操作。 有没有其他方法可以用可能更少的代码或查询做同样的事情。 @picture = current_picture.posts.where(post_id: params[:id]).first_or_initialize @picture.update_attributes(active: true, badge: parameters[:badge], identifier: parameters[:identifier]) render json: @picture

点击迁移失败从sqlite到postgres rails4,ruby 1.9.3

我正在尝试将我的Rails应用程序迁移到Postgresql for heroku但是我无法从我的SQLite3数据库获取数据,这是我尝试过的: 为新数据库创建Postgres数据库用户 $ createuser f3 Shall the new role be a superuser? (y/n) n Shall the new role be allowed to create databases? (y/n) y Shall the new role be allowed to create more new roles? (y/n) y 编辑 – 更新下面的命令 – 改为使用它 $ createuser f3 -d -s 创建所需的数据库 $ createdb -Of3 -Eutf8 […]

回形针video上传

我正在尝试在我的post中启用video上传function。 无法让它显示video。 video上传,我可以确认,虽然我设法右键点击video区域并下载它。 问题是如何正确查看它。 移民: class AddAttachmentVideoToPosts < ActiveRecord::Migration def self.up change_table :posts do |t| t.attachment :video end end def self.down drop_attached_file :posts, :video end end def change create_table :videos do |t| t.string :video_file_name t.string :video_content_type t.integer :video_file_size t.datetime :video_updated_at t.timestamps end end 发布模型 class Post ‘created_at desc’ attr_accessible :content, :title, :photo, :photo_delete, :video, :video_delete, […]

rails错误消息显示键,我只想要值

我有以下代码来显示错误消息: 以下是模型中的validation: validates :title, presence: true, length: {maximum: 50, minimum: 5, too_long: “Title cannot be longer than %{count} characters”, too_short:” must be at least %{count} characters.”} 出于某种原因,这会打印带有错误的属性名称和错误。 例如,如果我试图通过更新名为“title”的表单字段来显示错误,则错误消息将显示为: Title Title cannot be longer than 50 characters 我想在整个网站上显示许多错误消息,我不想自动编写任何内容。 我如何在开头摆脱“标题”这个词?

缺少主机链接! 请为Rails 4提供:host参数

缺少主机链接! 请提供:host参数,设置default_url_options [:host],或将:only_path设置为true 我随机地随机获取此错误,通常重新启动服务器会将问题解决一段时间,然后再次显示。 我在开发和test.rb文件中添加了config.action_mailer.default_url_options = “localhost:3000” 。 另外,我在一个模块中使用了include Rails.application.routes.url_helpers来访问路由,我读到这可能是我收到这些错误的原因但删除它会让我无法访问路由。 该模块用于datatables gem。

法拉第:: ConnectionFailed,连接被拒绝 – 连接(2)为“localhost”端口9200错误Ruby on Rails

我正在尝试使用Ruby on Rails在我的应用程序中添加Searchkick gem但是当我在搜索框中键入一个单词时,我的应用程序中出现此错误。 我已根据需要安装了elasticsearch和最新版本的java,但错误仍然相同。 这是我得到的错误: PostsController #search中的Faraday :: ConnectionFailed 连接被拒绝 – 连接(2)为“localhost”端口9200 这是我的代码: 终端显示已安装弹性搜索: 终奌站 Warning: elasticsearch-1.7.3 already installed posts_controller.rb class PostsController < ApplicationController before_action :set_post, only: [:show, :edit, :update, :destroy] def search if params[:search].present? @posts = Post.search(params[:search]) else @posts = Post.all end end # GET /posts # GET /posts.json def index @posts = […]

Rails渲染部分和布局在控制器中

我正在重写设计注册控制器的创建操作。 我有两种注册forms,个人或公司,公司有一个名为company_form的字段设置为true,以区分这两种forms。 在表单validation时,我希望呈现正确的表单(以前无论我使用什么forms,它都会回到默认表单)。 我有一个问题,只有部分被渲染(显而易见,因为我只渲染部分),但我需要渲染布局/应用程序文件。 class RegistrationsController < Devise::RegistrationsController def create if resource.company_form render partial: ‘shared/company_signup_form’ else render partial: ‘/shared/individual_signup_form’ end end end 我试过了 if resource.company_form render partial: ‘shared/company_signup_form’, layout: ‘layouts/application’ else render partial: ‘/shared/individual_signup_form’, layout: ‘layouts/application end 但我得到一个错误 Template is missing Missing partial layouts/_application 当我指定布局时为什么要查找部分_application,如何才能获得正确的布局 谢谢 编辑 阅读它说的文档 “请注意,partials的布局遵循与常规partials相同的前导下划线命名,并且与它们所属的部分放在同一个文件夹中(不在master layouts文件夹中)。” 但我希望应用默认布局