Tag: ruby on rails 4

Rails通过带有来自carrierwave的图像的标签显示相关post

post我试图通过使用carrierwave gem上传每个相关post的附加图像来按标签检索相关post 标签是从头开始编写的,但类似于act-as-taggable-on gem 。 下面从每个标签的Rails计数文章和相关文章标签中选择的解决方案按标题显示相关的post。 RELATED POSTS: 现在我想通过图像而不是上面的title来显示相关的post。 代码显示post的图像是 我怎样才能在上面的相关post中使用它? 我试过了 但这引发: NameError:未定义的局部变量或方法’related_post’用于# 显然, related_post没有记录在carrierwave上传器模型中,因为它与标签模型不同。 有什么帮助吗?

嵌套属性适用于创建但更新记录时失败

我有嵌套属性的问题。 创建工作,但是当我更新时,错误消息显示我没有设置关系中的值。 我找不到原因。 主要模型 class Product true, :reject_if => proc { | r | r[“name”].blank? or r[“value”].blank? } end 嵌套模型 class ProductOption true validates :value, :presence => true end 控制器有点短路。 Items是Product与has_one相关的模型 class Admin::ProductsController “alert( ‘Daten gespeichert!’ );” } else format.js { render :js => ‘alert( “Fehler beim Speichern!” );’ } end end end def update […]

Rails:对集合而不是数据库表使用现有的模型validation规则

Rails 4,Mongoid而不是ActiveRecord(但是为了这个问题,这应该改变任何东西)。 假设我有一个带有一些validation规则的MyModel域类: class MyModel include Mongoid::Document field :text, type: String field :type, type: String belongs_to :parent validates :text, presence: true validates :type, inclusion: %w(ABC) validates_uniqueness_of :text, scope: :parent # important validation rule for the purpose of the question end 其中Parent是另一个域类: class Parent include Mongoid::Document field :name, type: String has_many my_models end 此外,我在数据库中的相关表填充了一些有效数据。 现在,我想从CSV文件导入一些数据,这可能与数据库中的现有数据冲突。 最简单的方法是为CSV中的每一行创建一个MyModel实例,并validation它是否有效,然后将其保存到数据库中(或丢弃它)。 […]

Rails 4中的“Factory not registered”错误

我在Rails 4中使用Factory Girl获得了“Factory not registered”错误。这是我在spec / factories / user.rb中为一个简单的Devise用户定义的工厂: FactoryGirl.define do factory :user do email ‘test@example.com’ password ‘foobar’ password_confirmation ‘foobar’ end end 这是spec_helper.rb: ENV[“RAILS_ENV”] ||= ‘test’ require File.expand_path(“../../config/environment”, __FILE__) require ‘rspec/rails’ require ’email_spec’ require ‘rspec/autorun’ require ‘factory_girl’ Dir[Rails.root.join(“spec/support/**/*.rb”)].each { |f| require f } ActiveRecord::Migration.check_pending! if defined?(ActiveRecord::Migration) RSpec.configure do |config| config.include(EmailSpec::Helpers) config.include(EmailSpec::Matchers) config.fixture_path = “#{::Rails.root}/spec/fixtures” config.use_transactional_fixtures […]

编辑表单删除数据库中的记录

我有一个嵌套的表单,可以很好地保存数据库的内容。 唯一的问题是,当我单击编辑时,“grand-child”字段将从数据库中删除,因此我必须重新输入该字段上的所有内容。 正常行为是编辑应存在的先前内容。 我正在使用gem cocoon simple_forms用于我的表单的嵌套表单simple_forms和用于ckeditor编辑的ckeditor 。 这是我单击编辑时的服务器日志:通知: SQL (0.3ms) DELETE FROM “responses” WHERE “responses”.”id” = $1 [[“id”, 53]]每次我点击编辑时都会发生进入考试模型。 另请注意,问题已选中但未删除。 很奇怪。 Started GET “/exams/24/edit” for 127.0.0.1 at 2015-11-09 16:59:40 +0300 Processing by ExamsController#edit as HTML Parameters: {“id”=>”24”} Exam Load (0.8ms) SELECT “exams”.* FROM “exams” WHERE “exams”.”id” = $1 LIMIT 1 [[“id”, 24]] Question Load (0.4ms) […]

错误:缺少表“self”的FROM子句条目(Rails 4 Active Record事务,postgresql 9.4))

在创建模型交易时,我使用after_create在DealPrize表上创建奖品。 Deal和DealPrize属于/ has_many关系:a Deal有许多Deal奖品,Dealprize属于Deal。 它的工作方式如下:在Deal中,我有一个列’prize-number’,我使用了after_create,以便amdin创建一个新的交易evetytime,应用程序获取此prize_number列,并创建此批量的奖品(插入尽可能多的行必要时)在DealPrize表中。 我无法在postgresql查询中使用我的Rails app moel变量。 这是一个有效的查询( 使用数字代替变量 )。 它将它写在我的数据库上。 model deals.rb CONNEXION = ActiveRecord::Base.connection def create_prizes Deal.transaction do self.120000.times do |i| CONNEXION.execute “INSERT INTO deal_prizes (deal_id, created_at, updated_at) values ( 62, ‘2009-01-23 20:21:13’, ‘2009-01-23 20:21:13’)” end end end 但是,当我按照应变量替换示例值时,我得到一个错误。 CONNEXION = ActiveRecord::Base.connection def create_prizes Deal.transaction do self.120000.times do |i| CONNEXION.execute “INSERT INTO […]

Mail Gem:在浏览器中渲染收到的电子邮件/完整解析html部分

我正在使用Mail Gem在我的Rails 4应用程序中接收电子邮件。 通过Gem,每10分钟左右通过POP从邮箱中抓取邮件。 我需要渲染这些电子邮件 – 主要是HTML格式 – 并且无法在HTML中保存正文,更不用说处理嵌入式图像等内容了。 我可能在这里遗漏了一些东西 – 看着StackOverflow,但还没有找到相关问题的答案。 我一直在和你一起工作 message.body.decoded 并且还查看了html_part v.text_part – 但是我没有看到一个方法来获取所附的HTML。 看起来我需要剥离邮件gem似乎留在身体中的标题 – 然后还处理任何内联附件。 肯定有一个gem必须存在..? 还是一种方法……? 你的建议很有价值。 我确实找到了Mailcatcher Gem – 但这确实是它自己的Sinatra应用程序。 我可能只是尝试调整这个gem,但这似乎是很多工作。 当然其他人已经处理过这个问题..? 我还重视关于如何在MySQL中最好地存储消息体的建议 – 我正在考虑大文本或blob类型。 谢谢!

在没有加载的Rails应用程序中输入Bootsy WYSIWYG

在检查时,所有的冒险资产似乎都在加载:JS,CSS和text-area = bootsy显示在目标部分[第1部分]。 我在初始化程序中启用了基本function,并在我的模型中包含了bootsy容器。 Bootsy根本没有露面 ,需要帮助才能看出原因。 这是我得到的: 版本: Ruby 2.1.2,Rails 4.1 模型 class About < ActiveRecord::Base include Bootsy::Container end 查看 :_form.html.erb HTML输出: Hello Lorem Ipsum 正在加载的文件: /assets/bootsy/bootstrap-wysihtml5.css?body=1 /assets/bootsy/bootsy.css?body=1“/assets/bootsy/wysihtml5.js?body=1”/assets/bootsy/bootstrap-wysihtml5.js ?body = 1“/assets/bootsy/bootsy.js?body=1”/assets/bootsy/bootstrap.file-input.js?body=1 /assets/bootsy/init.js /assets/bootsy/editor_options.js /assets/bootsy/translations.js?body=1 /assets/bootsy.js?body=1

如何更改其中一个gem中加载gem的顺序

我有两个gem“CoreGem”和“AddonGem”。 Addon Gem增加了额外的function,将覆盖核心gem。 如何确保如果添加第二个gem,它将覆盖第一个gem的视图和资产。 到目前为止,它在添加到主应用程序时起作用: config.railties_order = [ :main_app, AddonGem::Engine, :all] 但我想从AddonGem中做到这一点。 谢谢

Ruby on Rails:路由未正确更新

我已经定义了以下路线: get ‘invites/search’, to: ‘invites#edit’, controller: :invites 我改变了: get ‘invites/search’, to: ‘invites#show’, controller: :invites 控制器如下: def show @invite = Invite.find(params[:id]) end … def edit # If the request is a search containing an ‘invite_code’ if params.has_key?(:invite_code) @invite = Invite.where(invite_code: params[:invite_code]).first else @invite = Invite.find(params[:id]) end end 我收到以下错误: ActiveRecord::RecordNotFound in InvitesController#show Couldn’t find Invite with ‘id’=search […]