0

我尝试在我的项目中使用 draper、decent_exposure 和 decent_decoration gem,但有些东西不能正常工作。这很奇怪,因为我只是从另一个项目中复制了这段代码。

我的控制器是:

class PostsController < ApplicationController

  expose_decorated(:post)
  expose_decorated(:posts)

  def create
    if post.save
      redirect_to post_path(post)
    else
      render :new
    end
  end

  def update
    if post.update(post_params)
      redirect_to post_path(post)
    else
      render :edit
    end
  end

  def destroy
    post.destroy
    redirect_to posts_path
  end

  private

    def post_params
      params.require(:post).permit(:title, :content)
    end

end

这是索引视图

%h1 Blog

- posts.each do |post|
  %p= post.title
  %p= post.content

我收到了这个错误:

undefined method `map' for #<Post:0x007f7df88dcca0>
Did you mean?  tap
4

1 回答 1

0

我想到了。我没有工作,因为我使用的是 3.0.0 版本的体面曝光,而体面装饰与 >= 2.0 版本兼容。

我将体面曝光的版本更改为 2.3,它可以正常工作。

于 2016-08-21T17:44:55.263 回答