Rails-如何编写一个链接,该链接将被调用以调用控制器中带有参数的动作?

时间:2018-06-30 06:25:39

标签: ruby-on-rails hyperlink routes slim-lang

示例,在我的控制器中:

class GymController < ApplicatoinController
  def store(page)
     ...
  end
end

现在,我想通过gym.html.slim中的链接来调用此操作:

- a ...

但是如何通过链接格式调用它,以及如何编写route.rb文件?

1 个答案:

答案 0 :(得分:0)

答案取决于您的商店页面是属于单个Gym对象还是属于其集合:

对于单个对象

# app/controllers/gym_controller.rb
class GymController < ApplicatoinController
  before_action :fetch_gym

  def store
    # ...
  end

  private

  def fetch_gym
    @gym = Gym.find(params.require(:id))
  end
end

# config/routes.rb
resources :gyms, only: [] do
  get :store, on: :member
end

# gym.html.slim
= link_to 'Store', store_gym_path(@gym)

用于收藏

# app/controllers/gym_controller.rb
class GymController < ApplicatoinController
  def store
    # ...
  end
end

# config/routes.rb
resources :gyms, only: [] do
  get :store, on: :collection
end

# gym.html.slim
= link_to 'Store', store_gym_path

在此处详细了解link_torouting

相关问题