1

我想使用 jquery 的 .before(); 重复一个表单元素;方法,以便表单的用户可以在这种情况下将更多成分添加到他们的食谱中。

到目前为止,我已经想出了这个,但是我不能在 js 文件中使用 ruby​​ 代码

 $('document').ready(function() {
  var ingredient = '<%= f.text_field :ingredients, :class => :ingred %><br>';
   $('#addIngredient').click(function(e) {
    e.preventDefault();
     $(this).before(ingredient);

   })
  });

我已经使用 html5 完成了它并让它工作

   $('document').ready(function() {

            var ingredient = '<input class="ingredients" name="ingredients" type="text" placeholder="Enter Ingredients Here"><br>';
             $('#addingredient').click(function(event) {
               event.preventDefault();
                $(this).before(ingredient);

                 })
               });

我只是很难让它适合我的红宝石形式

目前我将此输出到页面而不是文本字段

     <%= f.text_field :ingredients, :class => :ingred %>

任何人都可以帮忙吗?非常感激

4

1 回答 1

1

在Rails 中,这应该views在您的rails 应用程序目录中的一个文件中(例如/myrailsapp/app/views/<controllername>),扩展名为.erb。

您可以将上面的代码包装在 <script> </script>您的视图文件中的标记中,也可以<action>.html.erb在部分示例_beforeaction.js.erb中,然后您可以使用以下方法将其加载到主<action>.html.erb文件中:

<%= render "beforeaction" %> 

(注意:<action>是您的 rails 控制器中的操作)。

您可以在此处阅读指南:

http://guides.rubyonrails.org/layouts_and_rendering.html

http://ruby.about.com/od/rails3tutorial/ss/Getting-Started-With-Rails-Views.htm

于 2012-11-02T22:32:23.407 回答