【问题标题】:Ruby on Rails - Route to home#indexRuby on Rails - 回家路线#index
【发布时间】:2013-07-01 14:34:34
【问题描述】:

这是一个两部分。最初我只有一个控制器:

$ rails generate controller home index

...我把它作为我的根。

不过,最近我想让数据库参与进来。所以我做了一个名为 Daily 的脚手架,并将根目录切换为 dailies#index 而不是 home#index。

效果很好。一切似乎都运行良好。

...唯一的问题是我想将 home#index 用于其他用途...但现在我无法链接到它。

这是我的 routes.rb 文件:

LiquidAdmin::Application.routes.draw do
resources :dailies


devise_for :users

get '/auth/:provider/callback', to: 'sessions#create'

get "home/bandwall"
get "home/index" :to => "home#index"
# get "dailies/index"
root :to => "dailies#index"

这些是我的路线:

home_index GET    /home/index(.:format)                  home#index

我试过了。

<% link_to "Home", home_path %>
<% link_to "Home", home_index %>
<% link_to "Home", home/index %>

没有什么能让我回到那个文件...即使它在作为根时工作得很好。

现在,如果“A 计划”奏效,这一切都可以避免……

A 计划只是制作这个 Daily 脚手架并执行以下操作:

<% @dailies.each do |daily| %>

这是来自每日索引的链接...但不是来自 home#index 的链接。这就是我切换根目录的原因。我很生气,这更容易。

所以我的问题是: 1. 我如何链接到旧家#index? 2. 我应该如何从 home#index 查询每日表?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2


    【解决方案1】:

    假设您有一个Daily 模型。

    routes.rb

    resources :dailies
    get "home/index"
    

    运行rake routes:

    dailies    GET    /dailies(.:format)          dailies#index
               POST   /dailies(.:format)          dailies#create
     new_daily GET    /dailies/new(.:format)      dailies#new
    edit_daily GET    /dailies/:id/edit(.:format) dailies#edit
         daily GET    /dailies/:id(.:format)      dailies#show
               PUT    /dailies/:id(.:format)      dailies#update
               DELETE /dailies/:id(.:format)      dailies#destroy
    home_index GET    /home/index(.:format)     home#index
    

    app/controllers/dailies_controller.rb

    class DailiesController
      def index
        @dailies = Daily.all
      end
    end
    

    app/views/dailies/index.html.erb

    <%= link_to "Home", home_index_path %>
    
    <% @dailies.each do |daily| %>
      <%= link_to 'A daily', daily_path(daily) %>
    <% end %>
    

    【讨论】:

    • 哦,伙计...我可能已经有了这个解决方案一百万次了。但真正的问题是......我必须更改两个页面上的链接......否则当我到达下一页时它会给出同样的错误。这就是为什么我认为我一无所获。但至少你让我想到了这一点!非常感谢! (我也解开了javascript不加载之谜……)我唯一剩下的对手是Omniauth!
    • 对于样片,我得到“未定义的方法'每个'”对此有什么想法吗?
    • 更新了我的答案。同样,假设您有一个Daily 模型;)
    猜你喜欢
    • 2011-02-15
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-12
    • 1970-01-01
    相关资源
    最近更新 更多