[Rails] Controller -- Ex
SHOW ACTION
app/controllers/zombies_controller.rb
Create the show action for the ZombiesController which finds a Zombie based onparams[:id]. Store the Zombie object to an instance variable named @zombie.
<h1><%= @zombie.name %></h1>
Answer:
class ZombiesController < ApplicationController def show # put the show code here @zombie = Zombie.find(params[:id]) end end
RESPOND TO
Finish the respond_to block so the action returns the XML of the @zombie record
class ZombiesController < ApplicationController def show @zombie = Zombie.find(params[:id]) respond_to do |format| format.html format.xml{render xml: @zombie} end end end
CONTROLLER CREATE ACTION
Write a create action that will create a new Zombie from the params and then redirect to the created Zombie's show page. Make sure to use Rails 4 strong_parameters.
# params = {zombie: {name: 'Gregg', graveyard: 'TBA'}}
Answer:
class ZombiesController < ApplicationController def create @zombie = Zombie.create(zombie_params) redirect_to zombie_path(@zombie) end private def zombie_params params.required(:zombie).permit(:name, :graveyard) end end
CONTROLLER BEFORE ACTION
Add a before_action that calls a method to check if a Zombie has tweets. Redirect tozombies_path if the zombie doesn't have tweets, only on show.
class ZombiesController < ApplicationController before_action :find_zombie before_action :check_tweets, only: :show def check_tweets if @zombie.tweets.size == 0 redirect_to zombies_path end end def show render action: :show end def find_zombie @zombie = Zombie.find params[:id] end end

浙公网安备 33010602011771号