2014-04-23 127 views
0

如何從鏈接發出創建命令?我有一個顯示編輯或創建的if/else語句,但我沒有找到創建記錄的正確方法。Ruby on Rails:從鏈接創建記錄

我有這個,但我必須刷新頁面才能正常發揮作用,這是我不能有:

<% if FollowUp3Week.where(subject_id: sub.subject_id).first != nil %> 
    <%= link_to "edit", follow_up3_week_path([FollowUp3Week.where(subject_id: sub.subject_id).first]) %> 
    <% else %> 
    <%= FollowUp3Week.create(subject_id: sub.subject_id) %> 
    <% end %> 

而且我想這一點,但至今沒有運氣(其中subjects_path是當前頁面的鏈接):

<% if Baseline.where(subject_id: sub.subject_id).first != nil %> 
    <%= link_to "edit", baseline_path([Baseline.where(subject_id: sub.subject_id).first]) %>    
    <% else %> 
    <%= link_to "create", subjects_path(Baseline.create(subject_id: sub.subject_id)) %> 
    <% end %> 

任何提示,或引用我應該通讀,將不勝感激。

我真的只想鏈接'創建'來生成工作'編輯'鏈接。

謝謝你的時間。

+0

你可以給一些上下文,比如在什麼頁面上渲染,控制器和操作是什麼? –

回答

0

你只能在調用控制器時創建一條記錄,所以你想在你的情況下做什麼是使link_to只呈現具有創建操作的控制器的URL,一旦用戶單擊鏈接將觸發請求到您的控制器,該控制器將運行創建記錄。

+0

那會怎樣?我正在使用Baseline.create(subject_id:sub.subject_id)作爲link_to的參數。所以如果我需要渲染Baseline控制器的url,我應該在哪裏調用create方法? –

+1

它看起來像這樣: link_to「Create」,:controller =>「[your controller]」,:action =>「create」 然後從您的控制器中創建操作,您可以調用Baseline.create(subject_id :sub.subject_id) – eduardosasso