2017-03-03 32 views
0

我有一個名爲sections的模型,它有許多反饋。這是工作正常,並在'節'顯示頁面我可以顯示相關的'反饋'像這樣:鏈接在Ruby on Rails中添加相關項目

<% @section.feedbacks.each do |feedback| %> 
    <%= feedback.name %> 
    <%= link_to 'Show', feedback %> 
    <%= link_to 'Edit', edit_feedback_path(feedback) %> | 
<% end %> 

工作正常。但現在我需要一個按鈕,可以將我帶到新建反饋項目的創建頁面,並且需要將其關聯到此「部分」。

起初我是用嵌套的形式做的,但反饋項目有很多字段,所以在一個頁面上完成所有這些都很麻煩。

我是新來的紅寶石,所以希望這是一件非常簡單的事情!

在此先感謝您的幫助, 詹姆斯

回答

1

你應該使用嵌套的表格吧。如果您的表單包含很多字段,請使用引導程序嚮導。

<%= link_to 'New', new_feedback_path(section_id: @section.id) %> 

在新的feedback_controller方法&,寫如下的:

@feedback = Feedback.new 
@feedback.section_id = params[:section_id] 
+0

我想盡量避免使用標籤。 – user3429445

+0

因此,您不希望所有字段既不在單個頁面中,也不在標籤中。因此,只保存那些爲您的業務邏輯強制使用的字段 –

+0

我希望單個頁面中的所有字段,我只是不確定如何創建該鏈接來創建一個新項目形式的相關項目。 – user3429445

0

你正在嘗試做的是非常標準的Rails的東西,你需要閱讀了一下更多的官方指南。你將需要:

  • 與不同的動作控制器的反饋(editnew例如)
  • 對上述行動的一些看法。 editnew視圖可以共享相同的表單。
  • 路由可以在Section的上下文中與Feedback一起使用。

像:

resources :sections do 
    resources :feedbacks 
end 

這將允許您使用以下的,而不是你的編輯鏈接:

<%= link_to 'Edit', edit_feedback_path([@section, feedback]) %> 

而且會去這個編輯路線:

/sections/:section_id/feedbacks/:feedback_id 

您還將擁有以下新路線:

/sections/:section_id/feedbacks/new 

這將允許您從url params中獲得正確的部分,以便爲其創建反饋。