簡體   English   中英

rails-根據url將信息傳遞給控制器

[英]rails- Pass infomation to a controller based on url

我有一個用於“生產”的控制器,如果轉到localhost/productions您會看到一個索引頁面,您可以單擊“顯示”並查看該特定生產的顯示頁面。 每個產品都有一個唯一的ID,例如036ea872f9011a7c ,我希望我的用戶能夠向產品中添加項目,如下所示:

localhost/productions/036ea872f9011a7c/fixtures/add
localhost/productions/036ea872f9011a7c/positions/add
localhost/productions/036ea872f9011a7c/dimmers/add
localhost/productions/036ea872f9011a7c/channels/add
localhost/productions/036ea872f9011a7c/etc/add

您應該使用以下必要參數構建一條路線:

假設我們有分配給項目的任務

模型project.rb:

class Project < ActiveRecord::Base
  has_many :tasks, through: :project_task
end

模型task.rb

class Task < ActiveRecord::Base
  has_many :projects, through: :project_task
end

的routes.rb

...
resources :projects do
  member do
    get 'affect_task/:task_id', action: 'affect_task', as: :affect_task                                     
  end
end

項目/ show.haml

= link_to "task_name", affect_task_project_path(task_id: @task_id, project_id: @project_id) 

controller.rb

...
def affect_task
...
  CollaboratorTask.create(task_id: params[:task_id], project_id: params[:project_id])      
...
end
...

當然,這是一個示例,您可以理解。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM