The normal devise routes work users_sign_out_path, edit_user_registration_path, etc I can't seem to route to the controller for profiles. I'd like to use the index/show actions to display the user profile publicly.
Here is my controller setup.
class ProfilesController < ApplicationController before_action :set_profile, only: [:show, :edit, :update, :destroy]
# GET /profiles # GET /profiles.json def index @profiles = Profile.all end
# GET /profiles/1 # GET /profiles/1.json def show @user = User.find(params[:id])
respond_to do |format| format.html format.json {render :json => @user } end end
# GET /profiles/1/edit def edit end
# PATCH/PUT /profiles/1 # PATCH/PUT /profiles/1.json def update respond_to do |format| if @profile.update(profile_params) format.html { redirect_to @profile, notice: 'Profile was successfully updated.' } format.json { render :show, status: :ok, location: @profile } else format.html { render :edit } format.json { render json: @profile.errors, status: :unprocessable_entity } end end end
# DELETE /profiles/1 # DELETE /profiles/1.json def destroy @profile.destroy respond_to do |format| format.html { redirect_to profiles_url, notice: 'Profile was successfully destroyed.' } format.json { head :no_content } end end
private # Use callbacks to share common setup or constraints between actions. def set_profile @profile = Profile.find(params[:id]) end
# Never trust parameters from the scary internet, only allow the white list through. def profile_params params[:profile] end end
routes.rb resources :profiles It gives me a method undefined error when I use the links for the controller. Help me figure this out please. I'm pretty sure someone has come across this problem.