2016-06-20 10 views
0

Ruby on Railsに基づいてブログのウェブサイトを構築する方法については、tutorialに従っています。現時点での記事は以下のようになります。カスタムラベルを作成する

Article 4

記事は、タイトル、本文、以下のコメントがあります。名前とコメントを入力するフィールドには、それぞれ現在「著者名」と「本文」というタイトルが付けられています。これらは、対応する属性に基づいた「デフォルト」の名前です。以下のcomments_controller.rbを参照してください。

class CommentsController < ApplicationController 
    def create 
    @comment = Comment.new(comment_params) 
    @comment.article_id = params[:article_id] 
    @comment.save 
    redirect_to article_path(@comment.article) 
    end 

    def comment_params 
    params.require(:comment).permit(:author_name, :body) 
    end 

end 

質問は、カスタムラベル「あなたの名前」と「コメント」にラベル「著者名」と「BODY」を変更する方法です。フォームの表示が部分的_form.html.erbによって支配されて

<h1><%= @article.title %></h1> 
<p><%= @article.body %></p> 
<h3>Comments (<%= @article.comments.size %>)</h3> 
<%= render partial: 'articles/comment', collection: @article.comments %> 
<%= render partial: 'comments/form' %> 
<%= link_to "<< Back to Articles List", articles_path %> 
<%= link_to "delete", article_path(@article), method: :delete, data: {confirm: "Really delete the article?"} %> 
<%= link_to "edit", edit_article_path(@article) %> 

:記事は、ビューshow.html.erbによってレンダリングされる

<%= form_for(@article) do |f| %> 
    <ul> 
    <% @article.errors.full_messages.each do |error| %> 
    <li><%= error %></li> 
    <% end %> 
    </ul> 
    <p> 
    <%= f.label :title %><br /> 
    <!-- <%= f.label :author_name, "Your name" %><br /> --> 
    <%= f.text_field :title %> 
    </p> 
    <p> 
    <%= f.label :body %><br /> 
    <!-- <%= f.label :author_name, "Your Name" %> --> 
    <%= f.text_area :body %> 
    </p> 
    <p> 
    <%= f.submit %> 
    </p> 
<% end %> 

私がコメントアウト行を使用してカスタマイズされたラベルを実装しようとしましたしかし、これはうまくいかなかった。ラベルをカスタマイズするにはどうしたらいいですか?

+0

コメントアウトしたコードを使用したとき、私はあなたが既存の 'f.label'行をコメントアウトしていると思いますか?あなたがそれを試したときにも、何が起こったのですか?あなたはまだ古いラベルを手に入れましたか?他に何か?何が悪かったのか? – lurker

+0

申し訳ありませんが、私の答えがあなたの質問を解決した場合は、それを受け入れられた答えとしてマークしてください:-) – Alex

答えて

3

だけで実行します。

<%= f.label "Your name" %> 
<%= f.text_field :title %> 

<%= f.label "Your comment" %> 
<%= f.text_area :body %> 

あなたはそれをやっている方法は何にラベル設定:タイトル:身体がモデルに対応。

+0

この解決策は動作していません。ブラウザを提案して更新する際に '_form.html.erb'を更新した後、以前と同じように表示されます(「あなたの名前」ではなく「著者名」)。 –

+0

'app/views/articles'に' _form.html.erb'という名前の2つの部分があり、 'app/views/comments'に1つあります。私は代わりに「articles」の部分を修正していました「コメント」の1つ。両方の行に '<%= f.label:body"という行を挿入してください。あなたのコメント "%>"または "<%= f.label"あなたのコメント "%>"は、 –

+0

それは知っておいて良かったよ。学習を続けましょう:) – Alex

0

私はまだ:titleと:bodyをフォーム上に保持しますが、カスタムラベルを第2のパラメータとして追加します。

<p> 
    <%= f.label :title, "Your name" %><br /> 
    <%= f.text_field :title %> 
</p> 
<p> 
    <%= f.label :body, "Your custom label" %><br /> 
    <%= f.text_area :body %> 
</p> 
関連する問題