Ruby on rails Rails 4两种形式,一页上有单独的模型

Ruby on rails Rails 4两种形式,一页上有单独的模型,ruby-on-rails,forms,ruby-on-rails-4,Ruby On Rails,Forms,Ruby On Rails 4,我有两种沟通模式,发帖和回复。由于某种原因,我无法理解,@reply表单没有响应。提交不起作用,文件上传字段也不起作用,但只有在@reply表单、@prospect和@post表单上才能完美工作 <h1><strong><%= @group.name %></strong></h1> <p><em><%= @group.description %></em><p> <p&

我有两种沟通模式,发帖和回复。由于某种原因,我无法理解,@reply表单没有响应。提交不起作用,文件上传字段也不起作用,但只有在@reply表单、@prospect和@post表单上才能完美工作

<h1><strong><%= @group.name %></strong></h1>
<p><em><%= @group.description %></em><p>
<p>Operated by: <% @owner = User.find(@group.owner_id) %><%= @owner.name %></p>
<% if current_user.group_id == nil %>
  <%= form_for(@prospect) do |f| %>
    <%= f.hidden_field :group_id, value: @group.id %>
    <%= f.submit "Join Group", class: "btn btn-primary" %>
  <% end %>
<% end %>
<% if current_user.group_id == @group.id %>
  <%= form_for(@post) do |f| %>
    <%= f.hidden_field :group_id, value: @group.id %>
    <%= f.hidden_field :user_id, value: current_user.id %>
    <div class="form-group col-xs-12">
      <div class="row">
        <div class="col-xs-11">
          <%= f.text_area :content, class: 'form-control', placeholder: "What ails you?" %>
        </div>
        <div class="col-xs-1">
          <button type="button" class="btn btn-success" onclick="addpic(0);">Add a pic</button>
        </div>
      </div>
    </div>
    <div class="form-group hidden col-xs-12" id="picture0">
      <%= f.file_field :image, class: 'form-control' %>
    </div>
    <div class="form-group col-xs-12 actions">
      <%= f.submit %>
    </div>
  <% end %>
  <% @group.posts.each do |p| %>
    <div class="post">
      <div class="post-meta">
        <%= p.user.name %> <em><%= p.created_at.strftime('%a, %b %e, %Y %r') %></em>
      </div>
      <%= p.content %>
      <% if p.image %>
        <img src="data:image/png;base64,<%= p.image %>" class="img-responsive"/>
      <% end %>
      <% p.replies.each do |r| %>
        <%= r.user.name %><br/><%= r.content %>
        <% if r.image %>
          <img src="data:image/png;base64,<%= r.image %>" class="img-responsive"/>
        <% end %>
      <% end %>
      <a class="reply">Reply</a>
      <div class="reply hidden">
        <%= form_for(@reply) do |ff| %>
          <%= ff.hidden_field :post_id, value: p.id %>
          <%= ff.hidden_field :user_id, value: current_user.id %>
          <div class="form-group col-xs-12">
            <div class="row">
              <div class="col-xs-11">
                <%= ff.text_area :content, class: 'form-control', placeholder: "Write a reply..." %>
              </div>
              <div class="col-xs-1">
                <button type="button" class="btn btn-success" onclick="addpic(<%= p.id %>);">Add a pic</button>
              </div>
            </div>
          </div>
          <div class="form-group hidden col-xs-12" id="picture<%= p.id %>">
            <%= ff.file_field :image, class: 'form-control' %>
          </div>
          <div class="form-group col-xs-12 actions">
            <%= ff.submit %>
          </div>
        <% end %>
      </div>
    </div>
  <% end %>
<% end %>

<script>
  var addpic = function(id) {
    var el = '#picture' + id;
    $(el).removeClass('hidden');
  }

  $('.reply').on('click', function(e){
    e.preventDefault();
    $(this).next().removeClass('hidden');
  });
</script>


经营单位:

添加图片 “class=”img responsive“/>
“class=”img responsive“/> 回复 添加图片 var addpic=函数(id){ 变量el=“#图片”+id; $(el).removeClass('hidden'); } $('.reply')。在('click',函数(e)上{ e、 预防默认值(); $(this.next().removeClass('hidden'); });
解决了这个问题,JS阻止了.reply div中所有点击的默认值。在回复表单的包装中使用了reply,因此它阻止了默认值。通过将回复链接的类更改为“addreply”,并将js侦听器更改为“addreply”,它现在可以正常工作。

@reply如何失败?你的日志里有什么记载吗?您是否检查过是否有任何JS代码故障可能会阻止其提交?没有JS会使其失败,并且控制台不会显示任何内容,a标记上有“阻止”默认值,但这不会影响表单。并且不会因为表单未被提交而将任何内容发送到服务器日志submitted@OscarValdezEsquea它不应该,但它做到了!谢谢你给我指明了正确的方向。我没想到JS会造成这种情况,但你让我再看一次。