【问题标题】:Autogenerating routes in rails在 Rails 中自动生成路线
【发布时间】:2015-05-09 21:25:07
【问题描述】:

大家好,我希望生成以下形式的网址:

/admin/charity_upgrade_review/:id 

其中 :id 是我点击的 CHARITY 对象的 ID,并提供给 ADMIN 控制器 [url = (/admin/charity_upgrades)]

在我看来(在我点击链接提供我想要的 URL 之前,由 admin#charity_upgrades 提供)我有

  <% @charities.each do |charity| %>
    <%=link_to charity.name, admin_charity_upgrade_review_path(charity) %>
  <% end %>

我的路线如下

   get 'admin/charity_upgrades'
   get 'admin/charity_upgrade_review'
  resources :charities

当我点击由 link_to 生成的链接时,我得到的 url 是

/admin/charity_upgrade_review.:id

如何用 / 替换这个点?

一切顺利 D

【问题讨论】:

  • 你能在你的项目路径上运行'rake routes',然后在这里发布输出吗?

标签: ruby-on-rails ruby-on-rails-4 rails-activerecord rails-routing


【解决方案1】:

尝试将:id 添加到末尾并告诉它您希望路由指向哪个控制器/动作:

get 'admin/charity_upgrades/:id', to: 'admin#charity_upgrades', as: "admin_charity_upgrades"
get 'admin/charity_upgrade_review/:id', to: 'admin#charity_upgrade_review', as: "admin_charity_upgrade_review"

两个路由都被创建到管理控制器。

【讨论】:

  • 非常感谢,这就是答案!
【解决方案2】:

看来需要的是添加

get 'admin/charity_upgrade_review/:id', to: 'admin#charity_upgrade_review', as: "admin_charity_upgrade_review"

到 routes.rb,从那里一切正常。

【讨论】:

    【解决方案3】:

    试试这个。帮助你。将对象 id 与链接一起传递,并在路由端进行相应更改。

    <% @charities.each do |charity| %>
        <%=link_to charity.name, "/admin/charity_upgrade_review/#{@charities.id}" %>
      <% end %>
    

    在 routes.rb 端:

    get 'admin/charity_upgrade_review/:id'       controller_name#action_name
    

    【讨论】:

    • 好像这样不行,因为你需要在routes.rb文件中映射你想要的控制器和动作,否则会产生错误。 user1884067 的回答是需要的!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-13
    • 2014-04-27
    • 1970-01-01
    相关资源
    最近更新 更多