2011-08-30 105 views
0

我在我的Rails應用程序的文本輸入框。當用戶插入文本並提交控制器通過檢查身份證的條目表,看是否存在條目與否。如果條目不存在,則將新條目放入表中。如果條目確實存在,則會更新它以包含新的文本輸入。從控制器傳遞變量查看,軌道

現在如果用戶提交一個條目,然後編輯並再次提交它無需重新加載時,它不應該是一個新的項創建的頁面。我注意到,如果創建一個新的條目其ID將不會被傳遞給控制器​​,直到重新加載頁面。這意味着,如果有人一直在編輯一個文本輸入並保存不重裝,新的條目將被添加到表中的每個編輯。

我想條目ID以儘快,因爲它創建傳遞到客戶端。因此,如果用戶決定立即編輯文本條目,他們將提交文本的ID,從而編輯現有的條目,而不是創建一個新的條目。


這是一些代碼:

控制器:

def edit_description 
@msg = '' 
@entry = nil 
    if params[:entry][:id]==nil || params[:entry][:id]=='' 
    @entry = Entry.new(params[:entry]) 
    else 
    @entry = Entry.find(params[:entry][:id]) 
    @entry.title = params[:entry][:title] 
    @entry.data = params[:entry][:data]  
    end 

if @entry.save 
    @msg ='Save Successful' 
else 
    @msg ='Trouble Saving'  
end 

觀點:

<%= form_remote_tag(
      :url=>{:controller=>"details", :action=>"edit_description"}%> 
     <p><textarea rows="10" cols="50" name="entry[data]"><%= (h(@entry.data) unless @entry==nil)%></textarea></p> 
     <p> 
      <input type="hidden" name="entry[id]" value="<%=(@entry.id unless @entry==nil)%>"/> 
      <input type="submit" value="Save"/> 
     </p>        
    </form>  

回答

0

應該不是這僅僅是編輯/更新使用REST?

相關問題