Rails:从点击中获取参数

时间:2017-11-10 10:16:07

标签: ruby-on-rails

我正在研究类似Pinterest的应用程序来学习Rails,用户可以在其中收集项目并将其添加到集合中。

我有一个“添加到集合”按钮,它打开一个模式,其中包含用户所有集合的列表。这适用于单个项目显示页面,但不适用于我的项目索引页面(列出已发布的所有项目)。

这是我的收藏控制器

def index
    @item = Item.find(params[:item_id])

    @selected_collections = selected_collections(@item.id)
    @collections = current_user.collections

    respond_to do |format|
      format.js {
        render
      }
    end
end

我的项目控制器

def index
    @items = Item.all.order(created_at: :desc).paginate(:page => params[:page], :per_page => 20)
    @collections = current_user.collections
    @selected_collections = selected_collections(item.id)
end


def show
    @item = Item.find_by_id(params[:id])
    return render_not_found if @item.blank?
    @collections = current_user.collections
    @selected_collections = selected_collections(@item.id)
end

这是我的添加到收藏按钮,应该为索引上的每个项目显示:

<%= link_to "+ Add", item_collections_path(item, format: :js), class: 'btn btn-secondary btn-30', data: {toggle: 'modal', target: '#CollectionModal'}, remote: true, format: :js %>

对应模式的一部分

<div class="modal-body">
    <%= render 'collections/collections_list', :collections=>@collections, :selected_collections=>@selected_collections %>
  </div>

_collection_list.html.erb

<div id="collection_list">

<% @collections.each do |collection| %>
    <%= render 'collections/collection_checkbox', collection: collection, selected_collections: selected_collections %>
<% end %>

<%= render 'collections/collection_checkbox', collection: Collection.new, selected_collections: selected_collections %>

<div style='display: none;' class="new_collection_template">
    <%= render 'collections/collection_checkbox', collection: Collection.new, selected_collections: selected_collections %>
</div>

_collection_checkbox.html.erb

<div class="form-check">

    “&lt;%='checked'if selected_collections.include?(collection.id)%&gt;&lt;%=”disabled“除非collection.id%&gt;&gt;     &lt;%= collection.collection_name%&gt;

<% if !collection.id %>
  <input type="text" class="collection-name" placeholder="New collection" />
<% end %>

在我的索引上,我收到以下错误消息: 未定义的局部变量或方法`item' ItemsController:0x007f69022aefa0你的意思是? item_url items_url item_path @items

Screenshot of Error Message

我认为这是因为我没有在索引上定义个人@item。在项目显示页面上,我只需在URL中找到参数。但是我怎样才能在索引上解决这个问题呢?

感谢您的帮助,非常感谢:)

0 个答案:

没有答案