小编use*_*630的帖子

如何使注册页面成为Devise的根页面?

我正在使用Devise 3.1.0在Rails 4.0.0上运行.我的路线设置如下:

devise_for :users do
  root "devise/registrations#new"
end

resources :books
Run Code Online (Sandbox Code Playgroud)

我想要做的是让Devise注册页面成为用户的欢迎页面,如果他们还没有登录,但是如果他们已登录他们将进入图书索引.现在它只是给我标准的Ruby on Rails:Welcome Aboard页面,好像Devise不存在.我该怎么做?


回答

https://github.com/plataformatec/devise/issues/2393

devise_for :users
devise_scope :user do
  authenticated :user do
    root :to => 'books#index', as: :authenticated_root
  end
  unauthenticated :user do
    root :to => 'devise/registrations#new', as: :unauthenticated_root
  end
end
Run Code Online (Sandbox Code Playgroud)

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

19
推荐指数
1
解决办法
5332
查看次数

如何使用Rails 4获得Jquery UI自动完成功能?

我正在使用Rails 4.0.2和jquery-rails(3.1.0)以及jquery-ui-rails(4.1.1)gems.我正在尝试将自动填充添加到搜索表单中(使用Bootstrap 3.1.0):

<%= form_tag products_path, method: :get, class: 'navbar-form navbar-left' do %>
   <div class='form-group'>
     <%= text_field_tag :query, params[:query], id: "navbar-search-input", class: 'form-control', placeholder: 'Product name.....' %>
   </div>
   <%= button_tag(type: 'submit', id: 'navbar-search-btn', class: 'btn btn-default') do %>
     <i class='fa fa-search fa-fw'></i> Search
   <% end %>  
<% end %>
Run Code Online (Sandbox Code Playgroud)

这是我的应用程序JS和CSS文件:

的application.js

//= require jquery
//= require jquery_ujs
//= require jquery.ui.autocomplete
//= require turbolinks
//= require_tree .

var ready;
ready = (function() {
  $('a[href="' + this.location.pathname + '"]').parent().addClass('active'); …
Run Code Online (Sandbox Code Playgroud)

ruby jquery jquery-ui ruby-on-rails ruby-on-rails-4

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

Money-Rails Gem:如何为所有货币制作选择列表?

我正在使用money-rails gem并希望在我的视图中显示不同货币的列表,但我现在的代码不起作用.

我有我的Price模型和领域in_centscurrency:

create_table :prices do |t|
  t.integer :in_cents, default: 0, null: false
  t.string :currency, default: 'USD', null: false
Run Code Online (Sandbox Code Playgroud)

现在根据Money gem和Money-Rails文档我必须做的事情如下:

class Price < ActiveRecord::Base

  monetize :in_cents, as: "amount", with_model_currency: :in_cents_currency

  def all_currencies(hash)
    hash.keys
  end
Run Code Online (Sandbox Code Playgroud)

比我的简单形式宝石的观点:

= f.input :currency, collection: all_currencies(Money::Currency.table)
= f.input :amount, required: false
Run Code Online (Sandbox Code Playgroud)

但这给了我错误:

undefined method `all_currencies' for #<#<Class:0xd154124>:0xd15bab4>
Run Code Online (Sandbox Code Playgroud)

为什么?

PS

我想显示ISO代码和名称United States Dollar (USD).

ruby ruby-on-rails ruby-on-rails-4 money-rails

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

如何在种子数据中创建相同的记录X次?

我是Rails(4.0.0)和Ruby(2.0.0)的新手,想知道如何给每个用户提供十次相同的书.首先,我创建了三个用户:

user1 = User.create(name: "Fred")
user2 = User.create(name: "Bob")
user3 = User.create(name: "Ron")
Run Code Online (Sandbox Code Playgroud)

现在我想给所有三个用户一本十本书来测试我的应用程序.所以我从这样开始:

book = Book.create(title: "My Book")
Run Code Online (Sandbox Code Playgroud)

在我迷失了如何做each和分配用户之后.你知道怎么?在这种情况下,质量分配安全无关紧要,只需要数据进行视图测试.

ruby ruby-on-rails ruby-on-rails-4

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