2012-04-18 33 views
4

我想知道是否有人可以幫助我。我現在正在學習ROR,並且遇到了一些麻煩。 我已經使用腳手架創建了other_users和post模型。 other_users有很多:帖子等等。 這個想法是,當用戶登錄並創建一個Post時,在show action中顯示創建該帖子的用戶的名字。 我想知道是否有人可以打電話給我。被調用的ID爲零,這將錯誤地爲4 - 如果你真的想要的ID爲零,請使用object_id

郵政控制器

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 %> 

我知道什麼是錯的,但我對此非常新,所以我不能弄明白上我自己的

+0

Karlis-只是檢查@other_user是否有值,或者你沒有收到零對象。 – vasu 2012-04-18 12:14:06

+0

有同樣的問題,PLz指導.. – ALi 2012-04-30 10:14:09

+0

我們需要一些更多的信息。你在「演出」行動中得到這個錯誤嗎?如果是這樣,我們需要從控制器中查看代碼並查看該操作。通常,導軌還會識別出現錯誤的特定行號。這將幫助我們。 – MikeC 2012-10-24 00:31:27

回答

2

在行2 @other_user不知道所以它是零。我們試圖從無名稱獲得該ID,因此會產生稱爲called id for nil的錯誤。初始化@other_user並重試。

相關問題