簡體   English   中英

填充Rails表單字段

[英]Populate Rails form fields

這很難解釋,但這里有。 我有一個Rails應用程序,包括學生,課程,作業和成績

在學生表演視圖中,列出了學生所學的所有課程,以及與這些課程相關的作業。 所有在學生和作業之間有記錄成績的作業也會說明成績,所有其他作業都顯示“N / A”。 我想要做的是根據所點擊的鏈接,預先填充學生和作業字段的表格鏈接。

這是一個例子。 彼得帕克有一個“數學考試”的成績,但不是'數學CW'。 如果用戶點擊“添加”鏈接,我希望顯示一個視圖,其中包含預先填充了學生姓名和作業名稱的表單,以便為要添加的成績做好准備。

替代文字http://img695.imageshack.us/img695/7540/screenshot20100512at180.png

我基本上不知道如何最好地將這些數據傳遞給表單,或者如何使表單以不可編輯的方式顯示數據。

謝謝。

傑克你有幾個問題,其中一個相對容易以不可編輯的方式顯示數據,你可以禁用它

http://www.w3.org/TR/html401/interact/forms.html#h-17.12

如何將student_id和assignment_id傳遞給表單? 系統只會在本地使用,但我會盡力驗證一切。 - 傑克

傑克,你需要在當前視圖中可以傳遞student_id和assignment_id的東西。 像一個link_to。

<%= link_to "show me my assignments", {:action => 'show', :controller => "assignments"}, :student_id => student.id, :assignment_id => student.assignment[0].id %>

(注意使用寧靜路線可能更好,但這表明發生了什么)

這個鏈接將要做的是調用賦值控制器的show動作。 您可以通過調用以下方式獲取控制器中的id:

assignment_id = params[:assignment_id]
student_id = params[:student_id]
@student = Student.find(:first, :conditions {:id => student_id})
...

然后在/ app / views / assignments /目錄下的show.html.erb中,您需要呈現表單代碼,例如:

<%= form_for @student, :student ...

我掩飾了許多可能性,你問的問題有點寬泛。 將其分解為更小的塊(更少關注應用程序而更多地關注單個操作)並重新詢問論壇成員可能更有幫助。

你可以問更多:

  • 從鏈接向控制器發送數據
  • 從控制器中查找數據庫中的項目
  • 從控制器中的實例變量生成表單
  • 最后在表單中禁用text_field

我會說給出我建議的一個鏡頭(從視圖發送數據到控制器,然后使用控制器中的數據渲染另一個視圖),如果你無法弄清楚某些東西,試着問一個非常集中的問題關於你遇到的問題,你最終可能會比所有產品都好得多。

我只是鏈接到表單並傳遞student_id和assignment_id。 您無法真正使表單字段“不可編輯”,但您可以在顯示和保存信息之前驗證該用戶是否有權查看/編輯。

暫無
暫無

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

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