所以,我认为我认为这是一个非常简单的问题。我不知道如何访问用户输入...或者也许我不知道如何声明导轨中的临时变量。
无论如何,最直接的实现方法是什么:
<div>
Enter Group Size: <%= number_field_tag(:group_size)%>
Select Study Site: <%= number_field_tag(:site) %>
</div>
<% if :site > 4 %>
Hello!
<% else %>
Nope!
<% end %>
我想我需要JavaScript才能真正使其正常工作,但是现在我只需要知道如何使用这些变量。
任何帮助将不胜感激。谢谢。
要与ERB动态使用它们,需要以形式包裹并提交给服务器。然后,您可以使用params[:variable_name]
轻松访问它们。在控制器中准备消息可能会更干净,但是如果您不需要与模型进行交互,那么使用一些基本JS来完成所有操作将更加简单。
与大多数情况一样,解决方案涉及更多:
ajax
与本机应用不同,Rails依赖于HTTP协议
HTTP在请求下工作。您将请求发送到服务器以渲染网页;服务器响应请求。问题是,您不能在不向服务器发送请求的情况下使用带有"实时"功能的导轨(即使是"实时"应用程序,只需保持永久连接打开,就可以充当单个请求)
)这意味着,如果要处理"实时"数据(无需刷新),则必须使用技术代表您发送请求。正如您指出的那样,这将是Ajax:
$(".element").on("action", function(){
$.ajax({
url: "your/end/point"
data: {your: data}
success: function(data) {
alert(data)
}
});
});
Rails
要处理Rails中的AJAX请求,它基本上与处理HTTP请求相同:
#config/routes.rb
resources :controller do
get :your_endpoint
end
#app/controllers/controllers_controller.rb
def your_endpoint
# perform actions here
respond_to do |format|
format.html
format.js { # handles JS / Ajax request }
end
end
返回
您可以使用JS(AJAX)函数处理返回的数据。这给出了它在"实时"中起作用的图像,但实际上将发送&amp;每次从服务器接收请求