4

我想知道是否有人可以帮助我。我现在正在学习 ROR 并且遇到了一些麻烦。我使用脚手架创建了 other_users 和 post 模型。other_users 有很多:帖子等等。这个想法是,当用户登录并创建帖子时,在显示操作中显示创建此帖子的用户的名称。我想知道是否有人可以给我打电话。

后控制器

def new
    @post = Post.new(:other_user_id => @other_user.id)

    respond_to do |format|
      format.html # new.html.erb
      format.json { render json: @post }
    end
  end
def create
    @post = Post.new(params[:post])

    respond_to do |format|
      if @post.save
        format.html { redirect_to @post, notice: 'Post was successfully created.' }
        format.json { render json: @post, status: :created, location: @post }
      else
        format.html { render action: "new" }
        format.json { render json: @post.errors, status: :unprocessable_entity }
      end
    end
  end

发布视图_form:

<%= form_for(:post, :url => {:action => 'create', :other_user_id => @other_user.id}) do |f| %>

  <div class="field">
    <%= f.label :name %><br />
    <%= f.text_field :name %>
  </div>
  <div class="field">
    <%= f.label :title %><br />
    <%= f.text_field :title %>
  </div>
  <div class="field">
    <%= f.label :content %><br />
    <%= f.text_area :content %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

我知道这有问题,但我对此很陌生,所以我无法自己解决

4

1 回答 1

2

第 2 行@other_user是未知的,所以它是 nil。我们试图从 nil 中获取 id,因此它会产生错误,称为called id for nil. 初始化并重@other_user试。

于 2013-07-19T17:01:55.367 回答