如何在Ruby中创建新的路径/路由,然后链接到它?

时间:2019-06-06 22:31:51

标签: ruby-on-rails

我以前做过,但是在向Rails服务器添加新页面和新路径时遇到麻烦。

非常,我想添加一个新页面,然后在下拉菜单中链接到该页面...但是我无法使更改生效并在我显示新路径/路线时遇到麻烦做“铁路路线”。

我之前在pages#offings的“ offerings”页面上已经做到了,但是似乎无法弄清楚如何重复相同的过程

我开始转到页面控制器,并添加了“ def public_speaking”和“ end”:

页面控制器

# GET request for / which is our home page
   def home 
      @basic_plan = Plan.find(1)
      @pro_plan = Plan.find(2)
   end 

      def about
      end 

     def offerings
     end 

      def public_speaking
      end
  end

Routes.rb

然后在Routes.rb中,我尝试使用相同的过程(将get'public_speaking'添加到:'pages#public_speaking')

  root to: "pages#home"
  devise_for :users, controllers: { registrations: 'users/registrations' }
  resources :users do 
     resource :profile
  end 

  get 'about', to: 'pages#about'
  resources :contacts, only: [:create]
  get 'contact-us', to: 'contacts#new', as: 'new_contact' 
  get 'offerings', to: 'pages#offerings'
  get 'public_speaking', 'pages#public_speaking'
end

查看文件

我还在views文件夹中创建了一个名称相同的文件“ public_speaking.html.erb”。

我在做错什么/错过了创建新路径的过程?是否有执行该链接的命令?

我希望创建一条新路线(因为它适用于“优惠”),但是它没有任何作用,我不确定为什么。我将重复此过程5至6页,所以我想确保可以正确完成操作

2 个答案:

答案 0 :(得分:2)

我在您的routes中看到,看来您的代码不正确。

您应该更改:

来自get 'public_speaking', 'pages#public_speaking'

get 'public_speaking', to: 'pages#public_speaking'

答案 1 :(得分:0)

Khan Pham提供了正确的答案。似乎您在弄乱链接。

根据Ruby on Rails指南,正确的路线应为:

get 'public_speaking', to: 'pages#public_speaking'

其中to:需要controller#action格式。

然后您可以通过执行命令routes来检查rake routes,如果您的部件在那儿,则可以在视图中使用它,例如:  link_to('Public Speaking', public_speaking_path) 您可以阅读有关网址here的更多信息。祝你好运!