我想知道是否有人可以帮助我.我现在正在学习ROR并遇到了一些麻烦.
我已经创建了other_users并使用scaffold发布了模型. other_users有很多:帖子等等.
我们的想法是,当用户登录并创建帖子时,show action会显示创建此帖子的用户的名称.
我想知道是否有人可以打电话给我.
后控制器
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 %>
我知道这有点不对劲,但我对此很新,所以我无法自己解决这个问题
最佳答案 在第2行,@other_user未知,所以它是零.我们试图从一个nil获取id,因此它会产生一个名为id为nil的错误.初始化@other_user并再试一次.