我最近看过有关活动管理员的railscast 284并希望将其实现到我的网络应用程序中,但是当我添加资源时遇到了问题.每次尝试导航到创建的选项卡时,我都会收到以下消息:
NameError in Admin::LoadsController#index
undefined local variable or method `per' for []:ActiveRecord::Relation
Rails.root: /Users/thomascioppettini/rails_projects/want-freight
Application Trace | Framework Trace | Full Trace
Request
Parameters:
{"order"=>"id_desc"}
Show session dump
Show env dump
Response
Headers:
Run Code Online (Sandbox Code Playgroud)
没有
我唯一能想到的可能会影响应用程序的是添加一个recaptcha to devise,这是主动管理员所依赖的.
我在使用带有active_admin的rails3-jquery-autocomplete gem时遇到问题
我正在使用最新版本的active_admin(来自git),它现在依赖于formtastic 2而我正在使用1.04的rails3-jquery-autocomplete
undefined local variable or method `autocomplete_artist_name_records_path' for #<ActiveAdmin::DSL:0x007fde797140d0>
Run Code Online (Sandbox Code Playgroud)
它不喜欢我提供的网址路线,任何想法我可能做错了什么?
gem 'activeadmin', :git => 'git://github.com/gregbell/active_admin.git'
gem 'rails3-jquery-autocomplete', '~> 1.0.4'
Run Code Online (Sandbox Code Playgroud)
ActiveAdmin.register Record do
#...
controller do
autocomplete :artist, :name#, :full => true
end
form do |f|
f.input :artist_name, :as => :autocomplete, :url => autocomplete_artist_name_records_path
end
end
Run Code Online (Sandbox Code Playgroud)
resources :records do
get :autocomplete_artist_name, :on => :collection
end
Run Code Online (Sandbox Code Playgroud)
我也尝试过这个我在某个地方找到的修复程序,但它没有改变任何东西,包括错误
我目前有一个Rails 3.0.10应用程序,我用两个简单的关联模型:has_many和belongs_to.
安装ActiveAdmin插件并创建相应的Ruby资源文件后,我注意到了一些奇怪的行为.
在下面,您可以看到"作业文件"属于"Ernet客户端".这些关联都正常工作,但显示名称显示为实际的ActiveRecord对象而不是客户端名称.

这是"作业文件"部分下的展示视图:

但是,如果我去查看实际的客户端,则会显示正确的文本:

"作业文件"资源中肯定会出现问题导致此问题,但我无法弄清楚它可能是什么.谷歌搜索后我发现了这个:http: //groups.google.com/group/activeadmin/browse_thread/thread/2a261e070efa7bae
在JobFile.register文件中,我使用以下命令指定了显示名称:
filter :ernet_client, :display_name_methods => :display_name
Run Code Online (Sandbox Code Playgroud)
但这并不起作用,而且我循环浏览所有其他可用名称也无济于事.
我查找了ActiveAdmin的依赖项,sass-rails似乎是唯一的 - 但是如果你使用3.1而我正在使用Rails 3.0.10.
最后,为了确保我的关联确实有效,我打开了Rails控制台并创建了一个作业文件:
job = JobFile.new
=> #<JobFile hash returned>
job.ernet_client_id = 2
=> 2
job.ernet_client.client_name
=> Target
Run Code Online (Sandbox Code Playgroud)
似乎所有东西都应该正常运作.
任何人都有任何洞察力如何解决这个问题?
我翻译了我的活动管理菜单:
# encoding: utf-8
ActiveAdmin.register City do
menu :parent => "Données géographiques", :label => I18n.t(:cities)
end
Run Code Online (Sandbox Code Playgroud)
在我的active_admin.fr.yml中:
fr:
active_admin:
dashboard: "Tableau de Bord"
dashboard_welcome:
welcome: "Bienvenue dans Active Admin. Ceci est la page par défaut."
call_to_action: "Pour ajouter des sections au tableau de bord, consultez 'app/admin/dashboards.rb'"
cities: "Villes"
Run Code Online (Sandbox Code Playgroud)
在我的本地(debian 6),一切正常,但在我的前期制作(debian 6),它的写作:
translation missing: fr.cities
Run Code Online (Sandbox Code Playgroud)
我试图重启apache,清除缓存,重新加载I18n ......我失败了.
任何的想法?
我收到这个错误:
undefined method `has_many' for #<Formtastic::SemanticFormBuilder:0xb410d4c>
Run Code Online (Sandbox Code Playgroud)
当我像这样使用它时,它工作:
ActiveAdmin.register Ressource do
form do |f|
f.inputs do
f.input :offer_id, :as => :hidden
f.input :name
f.input :category, :include_blank => false, :collection => Category.order('place ASC').all, :member_label => :to_label
f.input :description, :input_html => {:class => 'editor'}
f.input :price
end
f.has_many :roles do |app_f|
app_f.inputs do
if not app_f.object.id.nil?
app_f.input :_destroy, :as => :boolean, :label => "Supprimer l'utilisateur du lot"
end
app_f.input :user, :member_label => :to_label, :label => 'Assigné le lot'
app_f.input :name, :include_blank => false …Run Code Online (Sandbox Code Playgroud) 我已经安装好了.
我有一个链接:<%= link_to "Sign up", new_user_registration_path %>
当我安装ActiveAdmin(对于现有模型User)时,此链接停止工作:
undefined local variable or method `new_user_registration_path'
Run Code Online (Sandbox Code Playgroud)
我使用git diff routes.rb,这里是(添加的行是黑色):
ActiveAdmin.routes(self)
devise_for :users, ActiveAdmin::Devise.config
此外<%= link_to "Sign out", destroy_user_session_path, :method => :delete %>,现在导致/admin/logout
我怎么解决这个问题?
耙路线:
admin_dashboard /admin(.:format) {:action=>"index", :controller=>"admin/dashboard"}
admin_codes GET /admin/codes(.:format) {:action=>"index", :controller=>"admin/codes"}
POST /admin/codes(.:format) {:action=>"create", :controller=>"admin/codes"}
new_admin_code GET /admin/codes/new(.:format) {:action=>"new", :controller=>"admin/codes"}
edit_admin_code GET /admin/codes/:id/edit(.:format) {:action=>"edit", :controller=>"admin/codes"}
admin_code GET /admin/codes/:id(.:format) {:action=>"show", :controller=>"admin/codes"}
PUT /admin/codes/:id(.:format) {:action=>"update", :controller=>"admin/codes"}
DELETE /admin/codes/:id(.:format) {:action=>"destroy", :controller=>"admin/codes"}
admin_users GET /admin/users(.:format) {:action=>"index", …Run Code Online (Sandbox Code Playgroud) 我有这些联想:
class Course < ActiveRecord::Base
has_many :signup
has_many :user, :through => :signup
accepts_nested_attributes_for :signup
end
class User < ActiveRecord::Base
has_many :signup
has_many :course, :through => :signup
accepts_nested_attributes_for :signup
end
class Signup < ActiveRecord::Base
belongs_to :course
belongs_to :user
end
Run Code Online (Sandbox Code Playgroud)
现在,我想为"注册"自定义ActiveAdmin表单,因此它显示了课程的标题和用户的名称作为选择而不是文本字段.
默认表单已经这样做,但是我需要进一步自定义表单,我无法重现默认表单.
我正在使用active_admin,我在Rails 3应用程序中的应用程序中有一个目录管理员,其中包含模型和页面的声明.偶尔我也有一个类,当该类有一个常量时,像这样:
class Foo
BAR = "bar"
end
Run Code Online (Sandbox Code Playgroud)
然后,我在每个必须重新加载我的Rails应用程序中的代码的请求中收到此警告:
/Users/pupeno/helloworld/app/admin/billing.rb:12: warning: already initialized constant BAR
Run Code Online (Sandbox Code Playgroud)
有什么想法以及如何避免这些警告?
我想在ActiveAdmin控制器中添加before_action过滤器.
我可以这样做:
before_action :set_product, only: [:show, :edit, :update, :destroy]
private
def set_product
@product = Product.find_by_name(params[:name])
end
Run Code Online (Sandbox Code Playgroud) ruby ruby-on-rails ruby-on-rails-3 activeadmin ruby-on-rails-4
我的User模型可以创建一个Employer或一个Jobseeker,具体取决于布尔Employer属性是否为真.
我想要做的是Employer为Jobseeker单独的范围设置单独的页面,而不仅仅是单独的范围.页面上将有完全不同的表格.
非常感谢!
activeadmin ×10
ruby ×3
autocomplete ×1
devise ×1
formtastic ×1
gem ×1
railscasts ×1
rubygems ×1