簡體   English   中英

將變量從控制器傳遞到視圖,導軌

[英]Passing a variable from controller to view, rails

我的Rails應用程序中有一個文本輸入框。 當用戶插入文本並提交文本時,控制器將按ID檢查條目表,以查看條目是否存在。 如果該條目不存在,則將新條目放入表中。 如果該條目確實存在,則將其更新為包含新的文本輸入。

現在,如果用戶提交了一個條目,然后對其進行了編輯並再次提交,而無需重新加載頁面,則在不應該創建該條目時會創建一個新條目。 我注意到,如果創建了新條目,則在重新加載頁面之前,其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>     

這不應該只是使用REST進行編輯/更新嗎?

暫無
暫無

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

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