【发布时间】:2019-04-19 17:23:27
【问题描述】:
我是 Rails 新手,所以我不知道这是否是最佳做法。我正在尝试使用 ajax 将用户输入从索引视图发送到索引操作,然后使用用户输入更新视图。我没有尝试将此输入保存在数据库中。
@url 总是返回 nil。
注意:我尝试创建自定义操作但没有成功,因为它需要模板。
提前致谢:)
索引操作
def index
@url = params[:option]
end
索引视图
<input type="text" id="exampleFormControlInput1">
<p id="resp-result"><%= @url %></p>
<script type="text/javascript">
$(".button").click(function(event){
var userinput = document.getElementById("form").value;
console.log(userinput);
event.preventDefault();
$.ajax({
url:"/responses/",
type: "POST",
data: {option: userinput},
dataType: "text",
success:function(result){
alert("success" + result);
},
error:function(result){
alert("error" + result);
}
});
});
</script>
【问题讨论】:
-
既然你是在发出ajax请求,你需要用json来响应。将值设置为
@url只会使其对您的视图可用,这听起来不像您想要的。 -
@vich - 100% 同意仅设置
@url值可能还不够。但是,我认为说“既然您正在发出 ajax 请求,您需要使用 json 响应”,我认为这不是 100% 准确的。我一直在做 ajax 请求,接收 html 作为他们的响应。可能我理解错了。 -
@jvillian 你是对的,我只是根据这个问题进行概括。你当然不需要用 json 回应,但从问题的声音来看,这可能是 OP 正在寻找的。span>
-
@vich @jvillian 感谢您的回复。对不起,我不明白你。但我尝试将索引操作更改为 ``` @url = params[:option].to_json ``` 但仍然在索引视图中得到 null
-
我建议您通读Rails documentation on ajax。简而言之,你想要
render json: params[:option]之类的东西。关于这个主题有很多东西要学习,但我会留在那个地方。
标签: javascript ruby-on-rails ajax