Javascript 通过rails 4中的modal向控制器发送数据
我是RoR的新手,我陷入这种情况有一段时间了。我正在使用一个引导模式,其中有一个表显示数据库中的用户,除此之外还有一个rage字段。需要向控制器发送Javascript 通过rails 4中的modal向控制器发送数据,javascript,jquery,ruby-on-rails,twitter-bootstrap,twitter-bootstrap-3,Javascript,Jquery,Ruby On Rails,Twitter Bootstrap,Twitter Bootstrap 3,我是RoR的新手,我陷入这种情况有一段时间了。我正在使用一个引导模式,其中有一个表显示数据库中的用户,除此之外还有一个rage字段。需要向控制器发送用户id和范围值。 大概是这样的: {0 {user_id1 : range_value1}, 1 {user_id2 : range_value2}} 部分模态: <div class="modal-header"> <button type="button" class="close" data-dismiss="mod
用户id
和范围值。
大概是这样的:
{0 {user_id1 : range_value1}, 1 {user_id2 : range_value2}}
部分模态:
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="modalLabel">Distribuir Estudos</h3>
</div>
<div class="modal-body">
<table class="table table-bordered">
<thead>
<tr>
<th>Integrante</th>
<th>Papel</th>
<th>Distribuição</th>
</tr>
</thead>
<tbody>
<% @users_protocols.each do |user_protocol| %>
<tr>
<td hidden><%= hidden_field :user_id, value: user_protocol.id %></td>
<td><%= user_protocol.user.username %></td>
<td><%= user_protocol.role.name %></td>
<td>
<span class="range-content">
<input type="range" data-slider-min="0" data-slider-max="100" data-slider-step="1" data-slider-value="100"/>
<span>100</span>
</span>
<span>%</span>
</td>
</tr>
<% end %>
</tbody>
</table>
</div>
<div class="modal-footer">
<button class="btn" data-dismiss="modal" aria-hidden="true">Fechar</button>
<%= link_to distribute_protocol_path, method: :put, :remote => true, class: 'btn btn-primary', id: 'btnDistribute' do %>
Distribuir
<% end %>
</div>
控制器:
def distribute_studies
@users_protocols = Protocol.find(params[:id]).users_protocols.includes(:user).each do |user_protocol|
puts user_protocol.id
puts user_protocol.role.name
puts user_protocol.user.username
end
respond_to do |format|
format.html { render :back }
format.json { head :no_content }
format.js { render :layout => false }
end
end
def distribute
#DO SOMETHING WITH DATA HERE
redirect_to :back
end
想法是,创建一个rails表单,并在单击时形成
json
数据。或者使用jquery和id
属性获取单个字段值,并相应地填充json。好的,我已经创建了json
对象,在ajax调用中,我正在传递数据
这个对象。但是我从控制器那里得到了两个答案,甚至使用e.preventDefault()
。另外,我无法恢复controller中的json
对象当您已经通过Jquery获取数据时,为什么要将remote true添加到link?只要把它去掉就可以了。你也可以添加一个按钮来代替。这是有意义的,而且很有效。但是,我无法恢复来自ajax的数据,不知怎的,它说的是undefined=“”
,这取决于您从服务器返回到浏览器的内容。您是否创建了一个名为distribute_studies.js.erb
的单独视图?其中列出了需要呈现的内容?还要检查您在服务器上收到的请求类型,如果其json
或js
的想法是,创建一个rails表单并在单击时形成json
数据。或者使用jquery和id
属性获取单个字段值,并相应地填充json。好的,我已经创建了json
对象,在ajax调用中,我正在传递数据
这个对象。但是我从控制器那里得到了两个答案,甚至使用e.preventDefault()
。另外,我无法恢复controller中的json
对象当您已经通过Jquery获取数据时,为什么要将remote true添加到link?只要把它去掉就可以了。你也可以添加一个按钮来代替。这是有意义的,而且很有效。但是,我无法恢复来自ajax的数据,不知怎的,它说的是undefined=“”
,这取决于您从服务器返回到浏览器的内容。您是否创建了一个名为distribute_studies.js.erb
的单独视图?其中列出了需要呈现的内容?如果服务器的json
或js
def distribute_studies
@users_protocols = Protocol.find(params[:id]).users_protocols.includes(:user).each do |user_protocol|
puts user_protocol.id
puts user_protocol.role.name
puts user_protocol.user.username
end
respond_to do |format|
format.html { render :back }
format.json { head :no_content }
format.js { render :layout => false }
end
end
def distribute
#DO SOMETHING WITH DATA HERE
redirect_to :back
end