小编sea*_*cal的帖子

ActionController的:: UnknownFormat

在我的rails应用程序中,我有一个ajax请求到服务器,以存储一些数据.这曾经没有任何问题,但现在我收到一个错误:

ActionController::UnknownFormat (ActionController::UnknownFormat):
  app/controllers/reservations_controller.rb:45:in `create'
Run Code Online (Sandbox Code Playgroud)

以下是控制器和我的javascript文件,其中我声明数据类型是JSON

class ReservationController < ApplicationController

  respond_to :html, :json

  def create
    ...
    respond_to do |format|
      if @reservation.save
        format.html do
          redirect_to '/'
        end
        format.json { render json: @reservation.to_json }
      else
        render 'new'
      end
    end # respond_to
  end # create 
end # ReservationController
Run Code Online (Sandbox Code Playgroud)

function.js

$.ajax({
        url: url_link,
        dataType: 'json',
        type: 'POST',
        data: dataToSend
      })
Run Code Online (Sandbox Code Playgroud)

完整的错误日志是:

Completed 406 Not Acceptable in 45ms

ActionController::UnknownFormat (ActionController::UnknownFormat):
app/controllers/bookings_controller.rb:45:in `create'

Rendered /Users/tiagovieira/.rvm/gems/ruby-2.0.0-p451/gems/actionpack-4.0.0/lib/action_dispatch/middleware/templates/rescues/_source.erb (0.5ms)
Rendered /Users/tiagovieira/.rvm/gems/ruby-2.0.0-p451/gems/actionpack-4.0.0/lib/action_dispatch/middleware/templates/rescues/_trace.erb (0.8ms)
Rendered /Users/tiagovieira/.rvm/gems/ruby-2.0.0-p451/gems/actionpack-4.0.0/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (0.8ms)
Rendered /Users/tiagovieira/.rvm/gems/ruby-2.0.0-p451/gems/actionpack-4.0.0/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout …
Run Code Online (Sandbox Code Playgroud)

ruby ajax respond-to ruby-on-rails-4

43
推荐指数
3
解决办法
12万
查看次数

为什么Ruby on Rails secretts.yml没有加载?

我试图从config/secrets.yml文件中访问我的密钥.

secrets.yml:

development:
  secret_key_base: laksjfla...alskdfjlaksjdflaksd
  other_secret: password
Run Code Online (Sandbox Code Playgroud)

Rails控制台:

$ rails c
> Rails.application.secrets
> => {:secret_key_base=>"laksjfla...alskdfjlaksjdflaksd"}
Run Code Online (Sandbox Code Playgroud)

我在哪里other_secret?!

ruby-on-rails ruby-on-rails-4.1

21
推荐指数
1
解决办法
4164
查看次数

在使用RSpec测试Rails帮助器方法时如何在params哈希中设置一个值?

在Ruby on Rails 4中,使用RSpec 3.1,如何params在测试Rails辅助方法时设置哈希值?

我想设置params[:search] = 'my keyword search'在我的帮助方法中使用,然后从it示例块中调用它.

规格/助理/ books_helper_spec.rb:

require 'rails_helper'

describe BooksHelper do
  describe "#page_title_helper" do
    let(:params) { {search: 'my keyword search'} }

    it "should read the params hash" do
      expect(helper.params[:search]).to eq "my keyword search"
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

应用程序/佣工/ books_helper.rb:

BooksHelper
  def title_helper
    if params[:search]
      "Books related to #{params[:search]}"
    else
      "All Books"
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails rspec-rails ruby-on-rails-4 rspec3

18
推荐指数
1
解决办法
5788
查看次数

得到错误因为无法自动加载常量UsersController

我在访问/users/newRails 4 时遇到错误Unable to autoload constant UsersController, expecting /app/controllers/users_controller.rb to define it.

这是控制器代码

    class UserController < ApplicationController
     def new
      @user = User.new
     end

     def create
      @user = User.new(params[:user]).permit(:email,  :password,:password_confirmation)

      respond_to do |format|
       if @user.save
        format.html { redirect_to new_user_path, notice: 'User was successfully created.' }
        format.json { render action: 'show', status: :created, location: @user }
       else
        format.html { render action: 'new' }
        format.json { render json: @user.errors, status: :unprocessable_entity }
       end
      end
    end 
  end
Run Code Online (Sandbox Code Playgroud)

我的观点new.html.erb是: …

ruby-on-rails

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

Rails 4 +设计:如何在没有RSpec的情况下为Devise重置密码编写测试?

出于我无法控制的原因,我无法在当前项目中使用RSpec进行测试.我正在尝试测试Devise重置密码,我似乎无法想出一些有用的东西.

这是我到目前为止所拥有的:

require 'test_helper'

class ResetPasswordTest < ActionDispatch::IntegrationTest
  setup do
    @user = users(:example)
  end

  test "reset user's password" do 
    old_password = @user.encrypted_password

    puts @user.inspect

    # This assertion works
    assert_difference('ActionMailer::Base.deliveries.count', 1) do
      post user_password_path, user: {email: @user.email}
    end

    # puts @user.reset_password_token => nil
    # Not sure why this doesn't assign a reset password token to @user

    patch "/users/password", user: {
      reset_password_token: @user.reset_password_token, 
      password: "new-password", 
      password_confirmation: "new-password",
    }

    # I get a success here, but I'm not sure why, since reset password …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails minitest devise ruby-on-rails-4

8
推荐指数
3
解决办法
6277
查看次数

条纹 - 没有提供API密钥?

我正在努力解决这个错误没有提供API密钥.使用"Stripe.api_key ="设置API密钥.按照Stripe的指南逐步执行后,您可以在Rails应用程序中从Stripe Web界面生成API密钥.

从我看来,一切看起来都很好,但它不断回归那个通知.有什么建议?

收费控制器:

  class ChargesController < ApplicationController

    def new
    end

    def create
      # Amount in cents
      @amount = 500

      customer = Stripe::Customer.create(
        :email => 'example@stripe.com',
        :card  => params[:stripeToken]
      )

      charge = Stripe::Charge.create(
        :customer    => customer.id,
        :amount      => @amount,
        :description => 'Rails Stripe customer',
        :currency    => 'usd'
      )

    rescue Stripe::CardError => e
      flash[:error] = e.message
      redirect_to charges_path
    end

  end
Run Code Online (Sandbox Code Playgroud)

配置/初始化/ stripe.rb

    Rails.configuration.stripe = {
      :publishable_key => ENV['pk_test_KEY'],
      :secret_key      => ENV['sk_test_KEY']
    }

    Stripe.api_key = Rails.configuration.stripe[:secret_key]
Run Code Online (Sandbox Code Playgroud)

终端跟踪在2014-12-12 22:15:08 +0100开始POST"/ …

ruby-on-rails stripe-payments

8
推荐指数
1
解决办法
6458
查看次数

如何优化ActiveRecord find_in_batches查询?

我正在使用Rails 4.0.0和Ruby 2.0.0.我Post(在博客文章中)模型与具有用户的user_name,first_name,last_name的组合的用户相关联.我想迁移数据,以便帖子通过外键与用户关联,这是用户的ID.

我在posts表中有大约1100万条记录.

我正在运行以下代码来使用Linux服务器上的rake任务来迁移数据.但是,我的任务一直被服务器"杀死",可能是由于rake任务,特别是下面的代码,消耗了太多内存.

我发现降低batch_size到20并增加sleep(10)sleep(60)允许任务运行更长时间,更新更多记录而不被杀死,但需要更多时间.

如何针对速度和内存使用优化此代码?

Post.where(user_id: nil).find_in_batches(batch_size: 1000) do |posts|
  puts "*** Updating batch beginning with post #{posts.first.id}..."
  sleep(10) # Hopefully, saving some memory usage.
  posts.each do |post|
    begin
      user = User.find_by(user_name: post.user_name, first_name: post.first_name, last_name: post.last_name)
      post.update(user_id: user.id)
    rescue NoMethodError => error # user could be nil, so user.id will raise a NoMethodError
      puts "No user found."
    end
  end
  puts "*** Finished batch."
end
Run Code Online (Sandbox Code Playgroud)

ruby activerecord ruby-on-rails-4

8
推荐指数
1
解决办法
3339
查看次数

为什么Heroku的heroku-18堆栈仅与Puma 3.7.x版兼容?

通过反复试验,我确定从Heroku的heroku-16堆栈升级到heroku-18堆栈将需要我在Rails应用程序中更新Puma。

以下是无法为puma gem构建本机扩展的信息。您能解释为什么v3.7之前的puma gem版本会发生这种故障吗?

Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

current directory:
/tmp/build_893b3955637fcd96d49136f0c3564c51/vendor/bundle/ruby/2.4.0/gems/puma-3.6.2/ext/puma_http11
/tmp/build_893b3955637fcd96d49136f0c3564c51/vendor/ruby-2.4.5/bin/ruby -r
./siteconf20190110-284-13d7ke9.rb extconf.rb
checking for BIO_read() in -lcrypto... yes
checking for SSL_CTX_new() in -lssl... yes
checking for openssl/bio.h... yes
creating Makefile

current directory:
/tmp/build_893b3955637fcd96d49136f0c3564c51/vendor/bundle/ruby/2.4.0/gems/puma-3.6.2/ext/puma_http11
make "DESTDIR=" clean

current directory:
/tmp/build_893b3955637fcd96d49136f0c3564c51/vendor/bundle/ruby/2.4.0/gems/puma-3.6.2/ext/puma_http11
make "DESTDIR="
compiling http11_parser.c
In file included from ext/puma_http11/http11_parser.rl:7:0:
ext/puma_http11/http11_parser.rl: In function ‘puma_parser_execute’:
ext/puma_http11/http11_parser.rl:111:17: warning: comparison between signed and
unsigned integer expressions [-Wsign-compare]
ext/puma_http11/http11_parser.rl: At top level:
cc1: warning: unrecognized …
Run Code Online (Sandbox Code Playgroud)

ruby rubygems heroku puma

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

jquery移动单选按钮组适合100%的宽度

<div data-role="fieldcontain" style="font-size: 84%"  > <!-- style="width: 48% ; float: right" -->
  <fieldset data-role="controlgroup"   data-type="horizontal"  data data-mini="false" data-theme="b" style="width: 98%; " data-corners="false"> <!-- strength -->
    <legend style="text-align: center ; ">????</legend>
    <input type="radio" name="radio-strength" id="radio-view-a" value="????" data class="blabla" style="background-color: #BF8F54;"/>
    <label  for="radio-view-a" >????: 10.50 &#8362;</label>
    <input class="blabla" type="radio" name="radio-strength" id="radio-view-b" value="??????"   checked="checked"/>
    <label for="radio-view-b" >??????: 6.30 &#8362;</label>
    <input class="blabla" type="radio" name="radio-strength" id="radio-view-c" value="???"  />
    <label for="radio-view-c" >???: 5.70 &#8362;</label>
  </fieldset>
</div>
Run Code Online (Sandbox Code Playgroud)

Jquery Mobile Radio按钮:在上面的例子中,我设法通过试验和错误来适应水平单选按钮.

怎么能在代码中完成???

jquery-mobile

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