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