小编Зел*_*ный的帖子

Ruby Date 1个月前来到String

我需要在Ruby中计算从今天起1个月的日期并将其转换为String以下格式:

yyyy-dd-mmThh:MM:ss(例如2014-08-26T00:00:00)

我试过了:(DateTime.now - Date.today.prev_month).to_datetime.strftime("%FT%T")但是我得到的方法不存在异常.

ruby date

6
推荐指数
1
解决办法
5685
查看次数

药剂字符范围

我和Range一起玩Elixir.
它工作正常:

>1..10 |> Enum.map fn(x) -> x |> IO.puts end
>1
>..
>10
>[:ok, :ok, :ok, :ok, :ok, :ok, :ok, :ok, :ok, :ok]
Run Code Online (Sandbox Code Playgroud)

但这里有错误:

>'a'..'z' |> Enum.map fn(x) -> x |> IO.puts end
 ** (Protocol.UndefinedError) protocol Range.Iterator not implemented for 'a'
 /Users/elix_lang/lib/elixir/lib/range.ex:7: Range.Iterator.impl_for!/1
Run Code Online (Sandbox Code Playgroud)

我来自Ruby熟悉,Erlang
我想了解问题是什么?
谢谢!!!

range elixir

5
推荐指数
3
解决办法
3573
查看次数

设计Omniauth + Linkedin错误."未找到.身份验证passthru"

我完全按照http://sourcey.com/rails-4-omniauth-using-devise-with-twitter-facebook-and-linkedin/#changes中的说明进行操作

要在我的应用程序中实现Devise Omniauth Linkedin,我做了以下工作,

在devise.rb中

config.omniauth :linked_in, "*******", "**********"
Run Code Online (Sandbox Code Playgroud)

在我的用户模型user.rb中,我有这个

class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :lockable, :confirmable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
     :recoverable, :rememberable, :trackable, :validatable, :confirmable, :omniauthable

TEMP_EMAIL_PREFIX = 'change@me'
TEMP_EMAIL_REGEX = /\Achange@me/
validates_format_of :email, :without => TEMP_EMAIL_REGEX, on: :update

def self.find_for_oauth(auth, signed_in_resource = nil)

# Get the identity and user if they exist
identity = Identity.find_for_oauth(auth)

# If a signed_in_resource is provided it always overrides …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails linkedin devise omniauth

5
推荐指数
1
解决办法
3336
查看次数

分配属性而不覆盖非零数据

是否有相当于assign_attributes不覆盖属性的方法?

让我用一个简单的例子来解释一下:

my_model = MyModel.new(first_name: 'Romain', age: nil)

new_attributes = {first_name: 'Pierre', last_name: 'Roger', age: 27}
my_model.assign_attributes(new_attributes)
# What I get : <first_name='Pierre', last_name='Roger', age=27>
#  * Romain is overwritten by Pierre
#  * nil is overwritten by 27
# What I would like : <first_name='Romain', last_name='Roger', age=27>
#  * Romain isn't overwritten by Pierre
#  * nil is overwritten by 27
Run Code Online (Sandbox Code Playgroud)

我知道我可以做这样的事情,但这似乎不对:

new_attributes.merge(
    my_model.slice(:first_name, :last_name, :age)
            .select { |_, val| !val.nil? }
)
my_model.assign_attributes(new_attributes)
Run Code Online (Sandbox Code Playgroud)

任何想法?

ruby-on-rails

5
推荐指数
1
解决办法
3831
查看次数

如何使用关联工厂的特征?

我需要为关联模型编写测试。

规范/工厂/用户.rb:

FactoryGirl.define do
  factory :user do
    sequence(:name){ |i| "us#{i}" }
    sequence(:email){ |i| "us#{i}@ad.ad" }
    password 'qwerty'
    password_confirmation{ |u| u.password } 
    info Faker::Lorem.paragraph(7)

    trait :user_status do
      status_id 0
    end

    trait :manager_status do
      status_id 1
    end

    trait :admin_status do
      status_id 2
    end    
  end 
end
Run Code Online (Sandbox Code Playgroud)

但文件spec/factories/users.rb 是空的。

架构:

create_table "statuses", force: :cascade do |t|
  t.string "title"
end

create_table "users", force: :cascade do |t|
  t.string   "email",                  default: "", null: false
  t.string   "encrypted_password",     default: "", null: false
  t.integer  "status_id",              default: 0
  t.string   "name"  
end …
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails factory-bot

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

在rails admin中更改navbar-header

我用过rails-admin.我在navbar-header栏中输入名称"myappname admin".我想用"myapp"名称更改它.我试图用自定义视图文件更改它

navigation.html.haml

.container-fluid
  .navbar-header
    %button.navbar-toggle.collapsed{ type: 'button', data: { toggle: 'collapse', target: '#secondary-navigation' } }
      %span.sr-only= t('admin.toggle_navigation')
      %span.icon-bar
      %span.icon-bar
      %span.icon-bar
    %a.navbar-brand.pjax{href: dashboard_path}
      / = _get_plugin_name[0] || 'Rails'
      = "myapp"
      / %small= _get_plugin_name[1] || 'Admin'
  .collapse.navbar-collapse#secondary-navigation
    = render partial: 'layouts/rails_admin/secondary_navigation'
Run Code Online (Sandbox Code Playgroud)

但它没有改变我的应用名称.

ruby-on-rails rails-admin

5
推荐指数
1
解决办法
998
查看次数

Minitest IntegrationTest ArgumentError:未知关键字:会话

我使用这样的 minitest 实现集成测试

test "should get index" do
  get admin_product_url, params: {}, session: { user_id: @admin_user.id }
  assert_response :success
end
Run Code Online (Sandbox Code Playgroud)

但我收到此错误消息

ArgumentError: unknown keyword: session
Run Code Online (Sandbox Code Playgroud)

我还能如何设置会话信息?

我正在使用 ruby​​ 2.4 和 Rails 5.0.2

ruby ruby-on-rails minitest

5
推荐指数
1
解决办法
2088
查看次数

ActionController :: ParameterMissing(未找到参数:order)

我正在尝试使用Postman chrome扩展程序向我的Ruby on Rails应用程序发送帖子请求,但我一直收到错误

ActionController::ParameterMissing (param not found: order):
app/controllers/orders_controller.rb:27:in order_params'
app/controllers/orders_controller.rb:20:in create
Run Code Online (Sandbox Code Playgroud)

我的orders_controller中的代码是

class OrdersController < ApplicationController
  protect_from_forgery :except => :create

  def new
    @order = Order.new
  end

  def index
    @orders = Order.all  
  end

  def show
    @order = Order.find(params[:id])    
  end

  def create
    @order = Order.new(order_params)
    render text: params[:product]   
  end

  private

  def order_params
    params.require(:order).permit(:product)
  end
end
Run Code Online (Sandbox Code Playgroud)

我对Postman扩展的关键值对是 product[product_name] Samsung

ruby ruby-on-rails params

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

Capistrano 3,使用上传!在lib/capistrano/tasks中的任务中

我正在使用Capistrano 3,我想创建自己的任务.所以我在lib/capistrano/tasks中创建了一个文件my_new_thing.rake,当我运行cap -T时我可以看到任务.但是......有些方法不可用.当我尝试使用上传!我明白了

cap aborted!
NoMethodError: undefined method `upload!' for main:Object
Run Code Online (Sandbox Code Playgroud)

但是,如果我将相同的任务移动到config/deploy.rb然后上传!方法可用.

发生什么了?如何创建新的Capistrano任务将它们放在单独的文件中并让它们工作?

ruby ruby-on-rails capistrano3

4
推荐指数
1
解决办法
2755
查看次数

在调用动作之前,检查rails中是否存在header属性。

我正在Rails 4中构建API。在调用操作之前,我首先尝试检查http标头中是否存在属性。有没有办法检查控制器的所有动作中的每个动作。Rails文档中提到了类似

constraints(lambda { |req| req.env["HTTP_CUSTOM_HEADER"] =~ /value/ }) do
  #controller, action mapping
end
Run Code Online (Sandbox Code Playgroud)

但我仍想向使用我的API的用户提供反馈。类似于发送带有消息说明的json:missing the custom attribute in the header

ruby ruby-on-rails rails-routing ruby-on-rails-4.2

4
推荐指数
1
解决办法
1813
查看次数