我有一张表格
<%= form_tag update_path do %>
<%= text_field_tag :test_input, @text %>
<%= submit_tag "update" %>
<% end %>
#mycontroller
def update
@text= 'abcde'
render :max_channel #redirect_to :max_channel
end
如果我使用render,它会更新我的text_field_tag,但它会将我的url更改为localhost:3000 / update。 redirect_to不更新我的文本,我不知道为什么。如何使用redirect_to更新text_field_tag
答案 0 :(得分:0)
如果您使用redirect_to,那么您需要传递带有请求的参数,因为redirect_to会转到不同的URL。有关重定向和渲染的一些有用的背景信息在SO问题Are redirect_to and render exchangeable?
中给出答案 1 :(得分:0)
redirect_to
将使浏览器请求新页面(这是您的max_channel),并且当前上下文将丢失。这就是您无法在@text
页面中更新max_channel
的原因。
而render
将使用当前上下文来呈现max_channel
页面。
你可以从http://guides.rubyonrails.org/layouts_and_rendering.html#using-redirect-to获得更多。
您可以将@text
保存到某处(比如您的sqlite
)并使用与max_channel
对应的方法检索它。