javascript - 向 Rails 模型提交值

标签 javascript jquery ruby-on-rails ruby-on-rails-3 models

如果我有这个作为我的表格

<%= form_for @rating, :id =>"ratingForm" do |f| %>
<%= f.hidden_field :ratings, :value => '' %>
<%= f.hidden_field :user_id, :value => current_user.id %>
<%= f.hidden_field :recipe_id, :value => @recipe.id %>
<div class="rateit" id="rateit10">
</div>
<%= f.submit "Submit" %>
<% end %>

如何传递此 div 中内容的值

<div class="rateit" id="rateit10">
</div>

如果我使用这个jquery我可以获得rateit10的值

$("#rateit10").bind('rated', function() { 
 $(this).rateit('value');
  });

该值来自点击一组星星,我正在尝试使用 Rateit 插件在 Rails 中实现评级系统

最佳答案

这会将哈希值传递给您的 Controller 方法:

   function pass_to_controller(){
    var rate_value = $("#ratings").value();
    var user_id = $("#user_id").value();  /*you already have access to this through current_user.id */
    var recipe_id = $("#recipe_id").value();

    $.ajax({
        type: "Get",
        url: "path_to_your_controller_action_here",
        timeout: 5000,
        data: {rating : rate_value, user : user_id, recipe : recipe_id }
    }).done(function(response){//do your response here});
}

您不能直接传递给模型 - 这会绕过 MVC 背后的整个思维过程。因此,最好的方法是使用 ajax,将其传递给您的 Controller 方法,然后如果您需要在数据库中执行某些操作,请调用您的模型方法。

像这样使用ajax的优点是,当有人对某些内容进行评分时,它不会重新加载您的页面。

关于javascript - 向 Rails 模型提交值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14960762/

相关文章:

javascript - 根据选择的单选按钮显示和/或隐藏输入框和标签

ruby-on-rails - 使用 Devise 以编程方式创建新用户

javascript - 为什么 width/height 元素属性呈现与内联/CSS 样式不同?

javascript - NextJs - next.config.js - CSS 加载器 + 自定义 Webpack 配置

javascript - jQuery 加载 .aspx 页面但不执行其中的脚本

php - 未提交附加字段值

ruby-on-rails - Ruby On Rails 模型中的自保存

ruby-on-rails - NoMethodError(未找到 R 函数 "get")

javascript - 如何获取浏览器内存中的javascript对象大小和计数

jquery - 从每个表行的容器获取第一个输入