0

我在一个网站上工作,可以让你许愿。我希望用户能够从网站上的任何地方创建愿望,这就是为什么我想使用 jquery/ajax 方法。

我在顶栏上有一个链接,它启用了一个模式:

_header.html.erb(模态部分)

<div id="make_wish" class="modal hide fade" tabindex="1" role="dialog" aria-labelledby="make_wish" aria-hidden="true">
  <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
    <h3 id="make_wish">Make a wish</h3>
  </div>
  <div id="linkpreview">
    <div class="modal-body">
        <form>
          <label for="url">Retrieve item</label>
          <input id="url" type="text" placeholder="http://">
        </form>
    </div>
    <div class="modal-footer">
      <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
      <%= link_to "Get info", new_item_path, id: "urlb", class: "btn btn-primary", remote: true %>
    </div>
  </div>
</div>

单击“获取信息”按钮后,调用 new.js.erb:

    $("#linkpreview").hide().after('<%= j render("item_fields") %>');

这呈现:_item_fields.html.erb

<div class="modal-body">
    <%= form_for(@item, html: { multipart: true }) do |f| %>
        <%= render 'fields', f: f %>
</div>
<div class="modal-footer">
    <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
    <%= f.submit "Wish", class: "btn btn-primary" %>
    <% end %>
</div>

现在,当我填写表格并点击提交按钮时,什么也没有发生。

我对 Rails、jquery 和 ajax 都是新手,非常感谢任何帮助!

** 编辑 **

items_controller.rb

def new
    if signed_in?
        @item = Item.new
        @user = current_user
    else
        render 'users/new'
    end
end

def create
    @list = current_user.lists.find(params[:list_id])
    @item = Item.create!(params[:item])
    @item.wishes.build(list_id: @list.id)
    if @item.save
      flash[:success] = "Item created!"
      redirect_to @item
    else
      render 'new'
    end
end
4

1 回答 1

0

问题是html格式错误。form_for 应该在之前<div class="modal-body">

<%= form_for(@item, html: { multipart: true }) do |f| %>
    <div class="modal-body">
        <%= render 'fields', f: f %>
    </div>
    <div class="modal-footer">
        <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
        <%= f.submit "Wish", class: "btn btn-primary" %>
    </div>
<% end %>
于 2013-05-29T07:31:59.543 回答