これはフォローアップの質問です: 1 つのアクションで異なるビューをレンダリングする
私が得ているエラーは次のとおりです。
Template is missing
Missing template items/show, application/show with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee]}.
ファイルをとshow.html.erb
の 2 つのファイルにコピーし、重複を避けるために削除したことに注意してください。show_with_edit.html.erb
show_with_star.erb
show.html.erb
私のコードposts_controller.rb
def show
if signed_in?
show_signed_in
else
show_not_signed_in
end
end
def show_signed_in
#add methods here
@post = Post.find(params[:id])
respond_to do |format|
format.html # show_with_edit.html.erb
format.json { render json: @post }
end
render 'show_with_edit'
end
def show_not_signed_in
#add methods here
@post = Post.find(params[:id])
respond_to do |format|
format.html # show_with_star.html.erb
format.json { render json: @post }
end
render 'show_with_star'
end
今のところ、2 つの異なるビューが同一であることは承知しています。ここでは、別のテキストを入れただけです。これを確認したら、各ビューに独自のメソッドやコンテンツなどを追加します。