如何将发布请求发送到Rails Action

时间:2019-04-19 17:23:28

标签: javascript ruby-on-rails ajax

我是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>

1 个答案:

答案 0 :(得分:1)

Yuna,您将需要在json中输出响应。让我们假设您的ajax脚本可以正确地将数据发送到Rails后端的ruby。

尝试一下

在ajax 不是这个

  url:"/responses/",

但是

  url:"/responses.json",

然后您可以按照

获得结果
alert("success" + result.myurl);

您可以 myurl 作为json响应的一部分

最后尝试一下

def index
    respond_to do |format|
        #@url = params[:option]
        @url='nancy more url'
        format.json do
          render json: {myurl: @url}.to_json
        end
    end
end