【问题标题】:Rails Admin throws No route matches errorRails 管理员抛出没有路由匹配错误
【发布时间】:2017-03-09 08:45:52
【问题描述】:

我有这个配置:

问题.rb

class Question
    belongs_to :asker
    belongs_to :expert
end

用户.rb

class User
  has_one :asker
  has_one :expert
end 

我已设置 rails_admin,但由于该错误,我无法编辑任何问题。

ActionController::UrlGenerationError at /question/764/edit
No route matches {:action=>"show", :controller=>"rails_admin/main", :id=>nil, :model_name=>"asker"}

我尝试在askers_controller.rb 中添加 show 方法,但仍然没有任何区别。

谢谢。

【问题讨论】:

    标签: ruby-on-rails rails-admin


    【解决方案1】:
    1. askers_controller 中有 edit 方法吗?
    2. 当您尝试编辑某些内容时,它应该具有如下路径 edit_admin_news_letter GET /admin/news_letters/:id/edit

    【讨论】:

    • 嗨,我也在提问者gist.github.com/alagu/60e876fa33cbf830b816d878b9afa71c中添加了编辑方法@
    • 难道你不想在 def edit @question = Question.find(764) end 中找到你想要编辑的特定记录吗??
    • 对不起,我没听懂你在说什么。我应该在 askers_controller#edit @question = Question.find(764) 中做吗?
    • 我认为问题在于 id 为 nil。
    • 是的,问题出在您为编辑页面生成的查看链接上。您必须检查您的 rake 路线并在 link_to 标记中使用编辑路径,并且您可以传递 id ,您可以在 def edit 中获取该 id ...结束假设您的路径是 edit_path 所以,例如: 这将要求 @object 的编辑方法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-14
    • 1970-01-01
    • 2015-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多