[英]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.