小编Mho*_*oad的帖子

如何使用 RSpec 测试 ActionText?

我正在尝试编写一个 RSpec 系统测试,该测试涉及在页面上填写 ActionText / Trix 字段。

似乎此处ActionText::SystemTestHelper定义的可用于帮助完成此任务,但到目前为止我还没有成功实现它。

我的 RSpec 测试如下所示:

# spec/system/add_job_posting_spec.rb

require 'rails_helper'

RSpec.describe 'adding a job posting', type: :system do
  let(:user) { FactoryBot.create :user }

  before do
    login_as(user)
    visit new_job_posting_path
  end

  context 'with valid information' do
    let(:valid_job_posting) { FactoryBot.create :job_posting }

    scenario 'creates a job posting', js: true do
      fill_in 'Title', with: valid_job_posting.title
      fill_in_rich_text_area 'Description', with: 'Job Info'

      click_button 'Submit'
      expect(page).to have_content 'Job was successfully created.'
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

我还尝试创建一个 RSpec 支持文件

# spec/support/action_text.rb …
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails trix ruby-on-rails-6 actiontext

7
推荐指数
2
解决办法
1034
查看次数

在Rails 4中构建一个简单的计算器表单

我希望在Rails 4应用程序中构建一组简单的计算器,我对如何设置模型和控制器感到有点失落.

在这个例子中,我有一系列计算器,它们具有非常相似但在某些情况下略有不同的输入/变量和略有不同的计算方法.

我的第一个尝试是简单地创建一个没有模型的计算器控制器,但很快就会丢失我将处理诸如形式参数和计算逻辑之类的东西.

鉴于计算器需要一些稍微不同的输入和计算方法,创建模型对我来说也没什么意义.

最后,在这种情况下,创建多个模型似乎也是一种非常混乱的方法.

所以考虑到所有这些,我想知道是否有人能告诉我如何处理这个问题的Rails方式.如果有助于获得更多信息,我希望建立与以下电子表格相同的方法:http://www.widerfunnel.com/proof/roi-calculators

任何帮助将非常感谢!

ruby activerecord ruby-on-rails strong-parameters ruby-on-rails-4

3
推荐指数
1
解决办法
5044
查看次数

Rails 4"仅在生产中没有将符号隐式转换为字符串"

我在生产中收到的错误只是说:

TypeError (no implicit conversion of Symbol into String):
app/controllers/products_controller.rb:15:in `create'
Run Code Online (Sandbox Code Playgroud)

以下是products_controller.rb文件中的相关代码(请注意,相关行是下面的第2行)

def create
  @product = @category.products.build(product_params)
  if @product.save
    flash[:success] = "Product successfully created"
    redirect_to [@category, @product]
  else
    flash[:alert] = "Product not created"
    render 'new'
  end
end

private

  def product_params
    params.require(:product).permit(:name, :description, :url, :category_id, :picture, :price, :social_image)
  end
Run Code Online (Sandbox Code Playgroud)

此代码目前在开发和测试环境中工作正常,之前在生产中工作(将解释自上次上一个工作生产版本以来的更改).我使用了diff工具来确认Gemfile.lock在本地机器和生产机器之间是相同的,以消除这个方面.

注意:我之前使用Paperclip gem进行文件上传工作,如图片参数中所示,但我最近为此模型添加了第二个文件上传(:social_image),并通过aws-sdk gem将上传方法切换到Amazon S3而不仅仅是生产服务器.另外,我已确认development.rb和production.rb之间的所有相关设置都是正确的.

请求的参数可以在下面找到:

{"utf8"=>"?",
 "authenticity_token"=>"yJJ1HwLZz9oDmsfUfN87DATCe+HC9IBhYVBddRvm4=",
 "product"=>{"name"=>"Heineken Style USB Flash Drive",
 "description"=>"Sample Description.",
 "url"=>"http://www.amazon.com/",
 "category_id"=>"1",
 "price"=>"7.99",
 "picture"=>#<ActionDispatch::Http::UploadedFile:0x00000004986260 @tempfile=#<Tempfile:/tmp/RackMultipart20131013-3068-fyjvy2>,
 @original_filename="heineken-usb-drive-stock.jpg",
 @content_type="image/jpeg",
 @headers="Content-Disposition: form-data; name=\"product[picture]\"; filename=\"heineken-usb-drive-stock.jpg\"\r\nContent-Type: image/jpeg\r\n">,
 "social_image"=>#<ActionDispatch::Http::UploadedFile:0x000000049861c0 @tempfile=#<Tempfile:/tmp/RackMultipart20131013-3068-1glzf9p>,
 @original_filename="heineken-usb-drive.png",
 @content_type="image/png", …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails amazon-s3 paperclip ruby-on-rails-4

2
推荐指数
1
解决办法
7495
查看次数