0

在设计资源上使用 Active Scaffold,使用 devise-invitatible 后出现错误

NameError in Admin/users#index

Showing /home/user/.rvm/gems/ruby-1.9.3-p286/gems/active_scaffold-3.2.16/frontends/default/views/_list_record_columns.html.erb where line #6 raised:

uninitialized constant User::InvitedBy

Extracted source (around line #6):

3:   <% column_value = authorized ? get_column_value(record, column) : active_scaffold_config.list.empty_field_text -%>
4: 
5:   <%= content_tag :td, column_attributes(column, record).merge(:class => column_class(column, column_value, record)) do %>
6:     <%= authorized ? render_list_column(column_value, column, record) : column_value %>
7:   <% end %>
8: <% end -%>
4

2 回答 2

1

ActiveScaffold 3.2.x 不支持多态关联的链接,你可以在受邀的列 conf.columns[:invited_by].clear_link 中调用 clear_link

我在 rails-3.2 分支中禁用了这些链接,但它将在 3.2.18 中。您也可以使用 git 中的 gem (gem 'active_scaffold', :git => 'git://github.com/activescaffold/active_scaffold) 来使用支持多态关联链接的 master 分支。

于 2012-11-19T12:33:05.100 回答
0

添加一些可能对某人有帮助的交叉链接:通过这个 Github 问题:https ://github.com/scambra/devise_invitable/issues/247

你可以放:

filter :email #fixes uninitialized constant User::InvitedBy

在 app/admin/user.rb

(我希望这是可以接受的,并会帮助某人)

编辑:我还使用了 devise_invitable,它已被删除或从未正确迁移:

def change
  add_column :users, :invitation_token, :string
  add_column :users, :invitation_created_at, :datetime
  add_column :users, :invitation_sent_at, :datetime
  add_column :users, :invitation_accepted_at, :datetime
  add_column :users, :invitation_limit, :integer
  add_column :users, :invited_by_id, :integer
  add_column :users, :invited_by_type, :string
  add_index :users, :invitation_token, :unique => true
end

# Allow null encrypted_password
change_column :users, :encrypted_password, :string, :null => true
# Allow null password_salt (add it if you are using Devise's encryptable module)
change_column :users, :password_salt, :string, :null => true

通过:https ://github.com/scambra/devise_invitable

于 2014-03-13T19:06:50.013 回答