使用 Jquery、Rails 4 为 Cocoon 部分设置局部值
Set locals value for Cocoon partial using Jquery, Rails 4
我正在创建简单的测验应用程序。到目前为止,我已经实现了允许创建嵌套表单的 Cocoon gem。一切都很好,除了我想将一些变量传递给 Cocoon partial。
问题:我可以毫无问题地发送静态值,但我想传递在 Jquery.
中计算的动态值
我的代码:
index.html.erb
<%= link_to_add_association 'Pievienot atbildi', f, :answers,render_options: {locals: { question_id: 'Holmes' }}, :class=>"btn btn-default" %>
<script type="text/javascript">
var n = $( ".reg_input_question" ).length;
alert(n);
</script>
_answer_fields.html.erb
<%= f.radio_button :correct_one, false, :checked => false, :name=> question_id %>
<%= link_to_remove_association "Dzēst atbildi", f , :class=>"btn btn-default text-danger"%>
我想将 n 变量从 index.html.erb 页面发送到 _answers_fields部分。我可以发送静态值“福尔摩斯”,但我不知道如何发送
使用脚本将 {locals: { question_id: 'Holmes' }}
值设置为其他值。
我发现 Great example 可以用常规的局部处理来做到这一点,但是因为我使用的是 Cocoon 局部处理,所以我不能像那个例子那样做。
我想要达到的目标:
我有 3 个嵌套模型测试、问题和答案。首先,我正在创建问题:
<%= link_to_add_association "Pievienot jautājumu", f, :questions, :class=>"btn btn-default" %>
创建问题后,我可以使用上面的代码创建答案。答案部分由答案文本和 correct_one 布尔值组成。我正在使用 radio_button 以允许 select 只是来自新创建的答案中的一个 correct_one。
问题:当我创建多个问题时,他们的答案共享相同的 radio_button 名称“福尔摩斯”。当用户 select 编辑了第一个问题的正确答案,然后单击第二个问题时,这会导致问题,之前的 select 离子被清除。
我要这样:
1. Question
<%= f.radio_button :correct_one, false, :checked => false, :name=> 1 %>
<%= f.radio_button :correct_one, false, :checked => false, :name=> 1 %>
2. Question
<%= f.radio_button :correct_one, false, :checked => false, :name=> 2 %>
<%= f.radio_button :correct_one, false, :checked => false, :name=> 2 %>
目前我有这样的:
1. Question
<%= f.radio_button :correct_one, false, :checked => false, :name=> "Holmes" %>
<%= f.radio_button :correct_one, false, :checked => false, :name=> "Holmes" %>
2. Question
<%= f.radio_button :correct_one, false, :checked => false, :name=> "Holmes" %>
<%= f.radio_button :correct_one, false, :checked => false, :name=> "Holmes" %>
在此先感谢您的帮助。
我找到了解决这个问题的方法:
在_answers_fields.html.erb
$('input[name="Holmes"]').each(function () {
var id = $(this).attr('id').match(/\d+/);
$(this).attr('name', id);
});
基本上,此脚本遍历名称为 "Holmes" 的所有答案字段,并将名称属性更改为 id 的一部分(因为每个输入的 id 是特定于资源的 - 每个问题 id 都传递给嵌套资源)。
丑陋的方法,但它确实可以满足我的需要。
我正在创建简单的测验应用程序。到目前为止,我已经实现了允许创建嵌套表单的 Cocoon gem。一切都很好,除了我想将一些变量传递给 Cocoon partial。
问题:我可以毫无问题地发送静态值,但我想传递在 Jquery.
中计算的动态值我的代码:
index.html.erb
<%= link_to_add_association 'Pievienot atbildi', f, :answers,render_options: {locals: { question_id: 'Holmes' }}, :class=>"btn btn-default" %>
<script type="text/javascript">
var n = $( ".reg_input_question" ).length;
alert(n);
</script>
_answer_fields.html.erb
<%= f.radio_button :correct_one, false, :checked => false, :name=> question_id %>
<%= link_to_remove_association "Dzēst atbildi", f , :class=>"btn btn-default text-danger"%>
我想将 n 变量从 index.html.erb 页面发送到 _answers_fields部分。我可以发送静态值“福尔摩斯”,但我不知道如何发送
使用脚本将 {locals: { question_id: 'Holmes' }}
值设置为其他值。
我发现 Great example 可以用常规的局部处理来做到这一点,但是因为我使用的是 Cocoon 局部处理,所以我不能像那个例子那样做。
我想要达到的目标:
我有 3 个嵌套模型测试、问题和答案。首先,我正在创建问题:
<%= link_to_add_association "Pievienot jautājumu", f, :questions, :class=>"btn btn-default" %>
创建问题后,我可以使用上面的代码创建答案。答案部分由答案文本和 correct_one 布尔值组成。我正在使用 radio_button 以允许 select 只是来自新创建的答案中的一个 correct_one。
问题:当我创建多个问题时,他们的答案共享相同的 radio_button 名称“福尔摩斯”。当用户 select 编辑了第一个问题的正确答案,然后单击第二个问题时,这会导致问题,之前的 select 离子被清除。
我要这样:
1. Question
<%= f.radio_button :correct_one, false, :checked => false, :name=> 1 %>
<%= f.radio_button :correct_one, false, :checked => false, :name=> 1 %>
2. Question
<%= f.radio_button :correct_one, false, :checked => false, :name=> 2 %>
<%= f.radio_button :correct_one, false, :checked => false, :name=> 2 %>
目前我有这样的:
1. Question
<%= f.radio_button :correct_one, false, :checked => false, :name=> "Holmes" %>
<%= f.radio_button :correct_one, false, :checked => false, :name=> "Holmes" %>
2. Question
<%= f.radio_button :correct_one, false, :checked => false, :name=> "Holmes" %>
<%= f.radio_button :correct_one, false, :checked => false, :name=> "Holmes" %>
在此先感谢您的帮助。
我找到了解决这个问题的方法:
在_answers_fields.html.erb
$('input[name="Holmes"]').each(function () {
var id = $(this).attr('id').match(/\d+/);
$(this).attr('name', id);
});
基本上,此脚本遍历名称为 "Holmes" 的所有答案字段,并将名称属性更改为 id 的一部分(因为每个输入的 id 是特定于资源的 - 每个问题 id 都传递给嵌套资源)。
丑陋的方法,但它确实可以满足我的需要。