rails 3 ошибка перенаправления маршрута:id => "имя-маршрутизатора"

Поэтому я пытаюсь получить ссылку, чтобы найти метод в моем контроллере, а затем перенаправить на пользовательскую страницу с путем /trials/my_plays

Я получаю сообщение об ошибке: "Не удалось найти Trail с id=my_plays" в "app/controllers/trails_controller.rb:48: в`show'"

маршрут:

match '/trails/my_plays', :to => "trails#my_plays", :as => :my_plays

ссылка на сайт:

<%= link_to "Your Trails", trails_my_plays_path %>

контроллер:

  def show
    @trail = Trail.find(params[:id]) #48
    @member = Member.find(current_user.member_id)
    respond_to do |format|
       format.html # show.html.erb
       format.json { render :json => @trail }
    end
  end

def my_plays
  @trails = Trail.all # once status is working, need to change to where(:publish => true)
  @follower = Play.where(:member_id => current_user.member_id)  
  @member = Member.find(current_user.member_id)
  @followed = [] #all trails followed by current user
  @follows = [] #the play record for that trail
  @trails.each do |trail|
     if @follower.count > 0
       @follower.each do |followr|
         if (followr.trail_id == trail.id)
                    @followed << trail
            @follows << followr
       end
     end
    end
 end
    respond_to do |format|
      format.html { redirect_to "trails/my_plays" }
    end
 end

1 ответ

Ваш match маршрут заменяется /trails маршрутизация, которая устанавливает id параметр.

Маршрутизация ресурсов для trails (или другой соответствующий маршрут, например :controller/:id) должен следовать за вашим сопоставителем маршрутов, иначе маршрутизация не пройдет после первого сопоставления маршрутов.

Другие вопросы по тегам