代码之家  ›  专栏  ›  技术社区  ›  Trip

你是如何用多语种的表格做表格的?

  •  1
  • Trip  · 技术社区  · 14 年前

    我正在尝试创建一个评论,它可以对其他评论进行评论,但都是从一个帖子派生出来的。

    对我来说特别麻烦的是,试着找出如何做到这一点,以便所有这些都能在后期节目中实现,而不是编辑或新的。这在建筑上是合理的吗?

    这样我就可以通过 Post.comments Comment.comments 或等 Comments.parent

    我的模型:

    #comment.rb
    
      belongs_to  :post
      belongs_to  :parent, :class_name => 'Comment'
      has_many    :children, :class_name => 'Comment'
    
      validates_presence_of :text
    
    #post.rb
    
      has_many                      :comments
      accepts_nested_attributes_for :comments
    

    接线柱控制器

    def show
      @post = Post.find(params[:id])
    
    
      respond_to do |format|
        format.html # show.html.erb
        format.xml  { render :xml => @post }
      end
    end
    

    惯例

    resource :comments
    

    我让我的评论桌上有一个 :text :post_id 属性。尽管我认为它不需要 后臀部 ,

    我的表格应该是什么样子,应该在哪里?

    这是我的可怕尝试:

      - form_for @post do |f|
        - f.fields_for :comments do |c|
          = f.label 'Comments'
          = f.text_area :text
          = f.submit 'Submit'
    

    但这样做似乎不必要。

    1 回复  |  直到 13 年前
        1
  •  1
  •   Trip    14 年前

    完成这项工作的两个关键组成部分是:

    因为它在节目中,我需要指定这个帖子的网址:

    - form_for @post do |f|
      - f.fields_for :comments, @comment, :url => edit_post_path(@post) do |c|
        = c.label 'Comments'
        = c.text_area :text
        = c.submit 'Submit'
    

    但我很困惑,因为哪里没有错误,哪里就没有文本字段!

    因为我的控制器没有提到。所以我把这个添加到 def show

    @comment = Comment.new
    

    塔达,它现在起作用了。

    全码

    控制器:

      def show
        @post = Post.find(params[:id])
        @comment = Comment.new
    
        respond_to do |format|
          format.html # show.html.erb
          format.xml  { render :xml => @post }
        end
      end