2016-04-25 28 views
-3

因此,我们目前正在为重要客户开发一个网站,并且遇到阻碍进一步发展的障碍。我们正在研究数据库表之间的关系,其中一个表不识别上述方法。下面是代码:未定义的方法'名称'为零:NilClass

organizers_controller.rb:

# GET /organizers.json 
def index 
    @organizers = Organizer.all 
end 

# GET /organizers/1 
# GET /organizers/1.json 
def show 
end 

# GET /organizers/new 
def new 
    @organizer = Organizer.new 
end 

# GET /organizers/1/edit 
    def edit 
end 

# POST /organizers 
# POST /organizers.json 
def create 
    @organizer = Organizer.new(organizer_params) 

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

# PATCH/PUT /organizers/1 
# PATCH/PUT /organizers/1.json 
def update 
    respond_to do |format| 
    if @organizer.update(organizer_params) 
     format.html { redirect_to @organizer, notice: 'Organizer was successfully updated.' } 
    format.json { render :show, status: :ok, location: @organizer } 
    else 
    format.html { render :edit } 
    format.json { render json: @organizer.errors, status: :unprocessable_entity } 
    end 
end 
end 

# DELETE /organizers/1 
# DELETE /organizers/1.json 
def destroy 
    @organizer.destroy 
    respond_to do |format| 
    format.html { redirect_to organizers_url, notice: 'Organizer was successfully destroyed.' } 
    format.json { head :no_content } 
end 
end 

private 
    # Use callbacks to share common setup or constraints between actions. 
    def set_organizer 
    @organizer = Organizer.find(params[:id]) 
    end 

# Never trust parameters from the scary internet, only allow the white list through. 
def organizer_params 
    params.require(:organizer).permit(:name) 
end 
end 

show.html.erb:

<p id="notice"><%= notice %></p> 

<p> 
    <strong>Title:</strong> 
    <%= @event.title %> 
    <strong>Organization</strong> 
    <%= @organizer.name %> 
</p> 

<%= link_to 'Edit', edit_event_path(@event) %> | 
<%= link_to 'Back', events_path %> 

相关的错误:

undefined method `name' for nil:NilClass 

借口间距问题,代码没有很好地转换到代码块

+0

'@ organizer'为零,所以你得到这个错误。 – dp7

+0

你确定错误信息是正确的吗?我宁愿期待“未定义的方法'title'”,因为你似乎有'@ organizer'实例变量集,但是'@ event'实例变量未设置。 –

+0

从哪里得到@event。 –

回答

0

如果您注释掉Organizer.title一行。看看你是否有其他错误。它会让你走上正轨。还要进入控制台并处理关系。你没有发布关系,所以很难知道。像event.organizer.name可能是nesseccary。

0

因此,在与同事交谈后,我已经找出了我的问题的答案。奇怪的是,这是一个简单的答案。我只是需要改变<%= @ organizer.name%>到:

<% @event.organizers.each do |organizer| %> 
    <%= organizer.name %> 
<% end %> 

,这是一个许多一对多的关系,事实上,节目没有访问@organizer变量的事实。所以这个循环是显示正确信息所必需的。无论如何感谢您的回复,很高兴您花了时间!

相关问题