首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >协会对职位的评论表格

协会对职位的评论表格
EN

Stack Overflow用户
提问于 2014-11-03 17:37:54
回答 1查看 130关注 0票数 0

我正在尝试创建与帖子相关的评论。有3个模型用户,微博和评论。以下是我所拥有的联系:

评语模型

代码语言:javascript
复制
class Comment < ActiveRecord::Base
  belongs_to :user 
  belongs_to :micropost

  validates :user_id, presence: true
  validates :micropost_id, presence: true
end

微柱模型

代码语言:javascript
复制
belongs_to :user
  has_many :comments, dependent: :destroy

用户模型

代码语言:javascript
复制
has_many :microposts, dependent: :destroy
  has_many :comments

我将路线嵌套为:

代码语言:javascript
复制
resources :microposts do 
    resources :comments
  end

这里是我的评论控制器:

代码语言:javascript
复制
class CommentsController < ApplicationController

  def create
    @micropost = Micropost.find(params[:micropost_id])
    @comment = @micropost.comments.build(params[:comment])
    if @comment.save
      flash[:success] = "Comment created"
      redirect_to current_user
    else
      render 'shared/_comment_form'
    end
  end
end

评论表格:

代码语言:javascript
复制
<%= form_for([@micropost, @comment]) do |f| %>
  <%= render 'shared/error_messages', object: f.object %>
  <div class="field">
    <%= f.text_area :content, placeholder: "Write your message.." %>
  </div>
  <%= f.submit "Post", class: "btn btn-primary" %>
<% end %>

当我运行这个时,我得到了一个形式,我得到了一个参数错误,

形式的第一个参数不能包含零或为空

我想知道如何解决这个问题?如果我只写微博,@注释,它似乎也不认识它,我得到了一个未定义的局部变量错误。为什么评论形式没有意识到微博是从评论控制器找到micropost_id?

EN

回答 1

Stack Overflow用户

发布于 2014-11-03 18:29:29

让我们首先了解这个表单是如何工作的。

例如,如果您的资源定义了关联,则如果路由设置正确,则希望向微博添加注释:

代码语言:javascript
复制
<%= form_for([@micropost, @comment]) do |f| %>
 ...
<% end %>

在呈现表单之前定义了@micropost@comment

示例:@micropost = Micropost.find(params[:id])@comment = Comment.new

稍后,当您提交此表单(仅在该步骤上)时,您的create操作将从您的注释控制器中被触及。

因此,基本上,您需要做的是在调用@micropost@comment之前定义form_for

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26719765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档