我已经搜索了这些问题,但找不到适合我的答案,而且我是 Rails 的新手并且被卡住了。我正在尝试呈现一个用于将状态发布到用户配置文件视图中的 simple_form。但是每次我加载个人资料页面时,都会出现以下错误:
undefined method `model_name' for NilClass:Class
Extracted source (around line #1):
1: <%= simple_form_for(@status) do |f| %>
我不知道为什么,因为它在我拥有的其他两个视图中渲染得很好,只是它们与表单位于同一文件夹中。配置文件不是。这是我用来呈现表单的内容:
<%= render partial: "statuses/form", locals: { status: @status} %>
这是我的控制器的样子:
class StatusesController < ApplicationController
before_filter :authenticate_member!, only: [:new, :create, :edit, :update]
# GET /statuses
# GET /statuses.json
def index
@statuses = Status.all
respond_to do |format|
format.html # index.html.erb
format.json { render json: @statuses }
end
end
# GET /statuses/1
# GET /statuses/1.json
def show
@status = Status.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @status }
end
end
# GET /statuses/new
# GET /statuses/new.json
def new
@status = Status.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @status }
end
end
# GET /statuses/1/edit
def edit
@status = Status.find(params[:id])
end
# POST /statuses
# POST /statuses.json
def create
@status = current_member.statuses.new(params[:status])
respond_to do |format|
if @status.save
format.html { redirect_to @status, notice: 'Status was successfully created.' }
format.json { render json: @status, status: :created, location: @status }
else
format.html { render action: "new" }
format.json { render json: @status.errors, status: :unprocessable_entity }
end
end
end
# PUT /statuses/1
# PUT /statuses/1.json
def update
@status = current_member.statuses.find(params[:id])
if params[:status] && params[:status].has_key?(:user_id)
params[:status].delete(:user_id)
end
respond_to do |format|
if @status.update_attributes(params[:status])
format.html { redirect_to @status, notice: 'Status was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @status.errors, status: :unprocessable_entity }
end
end
end
# DELETE /statuses/1
# DELETE /statuses/1.json
def destroy
@status = Status.find(params[:id])
@status.destroy
respond_to do |format|
format.html { redirect_to statuses_url }
format.json { head :no_content }
end
end
end
我在这里想念什么?