Tag: ruby on rails 4

ActionDispatch :: Http :: UploadedFile.content_type未在Rspec测试中初始化

背景 :我有一个带有cover_file属性的Book模型,该属性通过我的一个Rails控制器使用上传的文件进行设置。 我正在使用Rails v4.0.4。 目标 :我想测试只保存具有特定内容类型的文件。 我计划使用ActionDispatch::Http:UploadedFile创建Rspec测试示例ActionDispatch::Http:UploadedFile使用不同的content_type属性设置ActionDispatch::Http:UploadedFile对象。 问题 :当我使用content_type初始化一个新的ActionDispatch::Http::UploadedFile时,似乎没有设置(请参阅下面的test&output确认它是nil)。 似乎我只能在初始化UploadedFile之后用setter设置它。 我没有在文档中看到任何提及这种行为,也没有在SO上找到类似的问答,所以我很感激任何人帮助确定我做错了什么。 谢谢! 代码 : describe Book do let(:book) {FactoryGirl.build(:book)} describe “Save” do context “with valid data” do before do cover_image = File.new(Rails.root + ‘spec/fixtures/images/cover_valid.jpg’) book.cover_file = ActionDispatch::Http::UploadedFile.new(tempfile: cover_image, filename: File.basename(cover_image), content_type: “image/jpeg”) puts book.cover_file.content_type.nil? book.cover_file.content_type = “image/jpeg” puts book.cover_file.content_type end specify{expect(book.save).to be_true} end end end […]

Rails:渲染不起作用,仍然得到`模板丢失’

我目前正在学习Rails指南。 我经历了这些步骤,但仍然遇到了一个错误。 我的Ruby版本是ruby 2.1.1p76 ,Rails版本是4.0.4 。 作为指导,我创建了一个Article Controller 。 class ArticlesController < ApplicationController def new end def create render plain: params[:article].inspect end end 我应该得到{“title”=>”First article!”, “text”=>”This is my first article.”}但输出结果是 Template is missing Missing template articles/create, application/create with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :raw, :ruby, :jbuilder, :coffee]}.` 这是我的相关路线: articles GET /articles(.:format) articles#index POST /articles(.:format) articles#create 更新: […]

ActiveAdmin ForbiddenAttributesError

我是Ruby on Rails的全新产品。 我正在使用ActiveAdmin,我在创建AdminUser时遇到问题 Admin :: AdminUsersController中的ActiveModel :: ForbiddenAttributesError #create ActiveModel :: ForbiddenAttributesError 请求 参数: { “UTF8”=> “✓”, “authenticity_token”=> “NVV ++ 6GNTdA / nDzw1iJ6Ii84pZPcv2mzg0PK2Cg9Ag0 =”, “admin_user”=> { “电子邮件”=> “admin2@example.com”}, “commit”=>“创建管理员用户”} * Rails 4.1.0 activeadmin 1.0.0 ruby2.1 应用程序/管理/ admin_user.rb ActiveAdmin.register AdminUser do index do column :email column :current_sign_in_at column :last_sign_in_at column :sign_in_count default_actions end form do […]

Rails 4迁移:has_and_belongs_to_many表名

我目前尝试将rails 3.2应用程序切换到rails 4.0。 但是我对has_and_belongs_many模型有一个问题。 我创建了一个测试应用程序,我遇到了同样的问题。 这就是我所做的: 创建了两个模型:foo_clip和foo_url class FooClip < ActiveRecord::Base has_and_belongs_to_many :foo_urls attr_accessible :id, :name end class FooUrl < ActiveRecord::Base has_and_belongs_to_many :foo_clips attr_accessible :url end 在此之后,我更新了迁移文件: class CreateFooClips < ActiveRecord::Migration def change create_table :foo_clips do |t| t.string :name t.timestamps end end end class CreateFooUrls < ActiveRecord::Migration def change create_table :foo_urls do |t| t.string :url […]

Rails 4.2 – Sidekiq不在开发中发送电子邮件

我有一个rails应用程序,我有一个方法,我发送了很多电子邮件。 我想asynchronously执行此操作。 要做到这一点,我试图使用Sidekiq ,但我不能让它正常工作 – 它不发送任何电子邮件。 以前发送电子邮件,所以我确定我的电子邮件设置已正确设置。 在我的gemfile我有这个: gem ‘sidekiq’ 我已经运行了bundle install 。 我还安装了redis ,遵循RailsCasts#366上的说明。 我已经使用以下命令启动了sidekiq : bundle exec sidekiq ,这导致了下图中可以看到的内容: 在application.rb我有以下内容: config.active_job.queue_adapter = :sidekiq 我尝试发送这样的电子邮件: Mailer.deliver_new_competition_notification(member.user, @competition).deliver_later! 我没有收到任何错误,但电子邮件永远不会被发送。 那么,我错过了什么吗?

form_for – Ruby on Rails

我不明白form_for 。 我尝试实现本教程 ,但我不理解视图代码。 此外,我不明白api,否则我不会在这里问… :user, :url => sign_in_path(@user) do |f| %> 什么:as => :user说? :url => sign_in_path很清楚,但为什么有(@user)背后呢? 如何在不同的View访问@user ? 3.1。 我还想在application.html.erb (布局)中使用log-in-form,但@user在user_controller.rb而不在application_controller.rb 。 我怎样才能做到这一点? <%= form_for (User.new), …运作良好,但我认为这是不对的.. 为什么有类似for / forEach-loop的东西? do |f| %> 谢谢你的帮助!

Ruby 2.0.0 String#Match ArgumentError:UTF-8中的无效字节序列

我看到了很多,并没有想出一个优雅的解决方案。 如果用户输入包含无效的字节序列,我需要能够让它不引发exception。 例如: # @raw_response comes from user and contains invalid UTF-8 # for example: @raw_response = “\xBF” regex.match(@raw_response) ArgumentError: invalid byte sequence in UTF-8 已经提出了许多类似的问题,结果似乎是对字符串进行编码或强制编码。 然而,这些都不适合我: regex.match(@raw_response.force_encoding(“UTF-8”)) ArgumentError: invalid byte sequence in UTF-8 要么 regex.match(@raw_response.encode(“UTF-8″, :invalid=>:replace, :replace=>”?”)) ArgumentError: invalid byte sequence in UTF-8 这是Ruby 2.0.0的错误还是我错过了什么? 奇怪的是它似乎正确编码,但匹配继续引发exception: @raw_response.encode(“UTF-8″, :invalid=>:replace, :replace=>”?”).encoding => #

Ruby on Rails 4 – 使用什么身份validationgem?

所以在过去我们有过acts_as_authenticated,restful_authentication等…但是现在有各种各样的选项以及Rails本身具有身份validationfunction。 我即将开始一个新的rails项目,我对每个人的偏好(非oAuth)认证以及我建议考虑的内容感兴趣? 谢谢,斯科特

基于令牌的Rails JSON API身份validation

我在rails中制作API。 对于正常的身份validation,我们使用设计,但在API中如何实现设计validation。 gem ‘devise_token_auth’ 有人更喜欢这个gem进行身份validation,但没有可用的教程。 如何在rails api中实现authenitication?

添加对用户和post模型的评论(Ruby on Rails)

我是Rails的新手。 我正在构建我的第一个应用程序 – 简单的博客。 我有User和Post模型,每个用户可以写很多post。 现在我想添加评论模型,其中每个post可以有很多评论,并且每个用户也可以评论任何其他用户创建的任何post。 在评论模型我有 id \ body \ user_id \ post_id 列。 模型关联: user.rb has_many :posts, dependent: :destroy has_many :comments post.rb has_many :comments, dependent: :destroy belongs_to :user comment.rb belongs_to :user belongs_to :post 那么如何在CommentsController中正确定义创建动作呢? 谢谢。 更新: 的routes.rb resources :posts do resources :comments end comments_controller.rb def create @post = Post.find(params[:post_id]) @comment = @post.comments.create(comment_params) if […]