Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 登录使用带有Ruby on rails的设备后输入的页面_Ruby On Rails_Ruby_Devise_Routes - Fatal编程技术网

Ruby on rails 登录使用带有Ruby on rails的设备后输入的页面

Ruby on rails 登录使用带有Ruby on rails的设备后输入的页面,ruby-on-rails,ruby,devise,routes,Ruby On Rails,Ruby,Devise,Routes,我正在制作一个人们可以分享东西的平台。我有一个问题,当人们登录,因为我想重定向到一个特殊的页面,但我不能找出它,希望有人能帮助我 我还有另一个问题,因为我想在导航栏上创建一个页面,人们登录后可以在那里看到他们的pin。我已经找到了他们在哪里可以看到所有的引脚,但可以找到如何显示自己的引脚。我的想法是使用: <li><%= link_to "Home", pin_path %></li> 耙路径如下所示: users_sh

我正在制作一个人们可以分享东西的平台。我有一个问题,当人们登录,因为我想重定向到一个特殊的页面,但我不能找出它,希望有人能帮助我

我还有另一个问题,因为我想在导航栏上创建一个页面,人们登录后可以在那里看到他们的pin。我已经找到了他们在哪里可以看到所有的引脚,但可以找到如何显示自己的引脚。我的想法是使用:

<li><%= link_to "Home", pin_path %></li>
耙路径如下所示:

                   users_show GET    /users/show(.:format)          users#show
                         pins GET    /pins(.:format)                pins#index
                              POST   /pins(.:format)                pins#create
                      new_pin GET    /pins/new(.:format)            pins#new
                     edit_pin GET    /pins/:id/edit(.:format)       pins#edit
                          pin GET    /pins/:id(.:format)            pins#show
                              PUT    /pins/:id(.:format)            pins#update
                              DELETE /pins/:id(.:format)            pins#destroy
          thank_you_inquiries GET    /inquiries/thank_you(.:format) inquiries#thank_you
                    inquiries POST   /inquiries(.:format)           inquiries#create
                  new_inquiry GET    /inquiries/new(.:format)       inquiries#new
             new_user_session GET    /users/sign_in(.:format)       devise/sessions#new
                 user_session POST   /users/sign_in(.:format)       devise/sessions#create
         destroy_user_session DELETE /users/sign_out(.:format)      devise/sessions#destroy
     cancel_user_registration GET    /users/cancel(.:format)        devise/registrations#cancel
            user_registration POST   /users(.:format)               devise/registrations#create
        new_user_registration GET    /users/sign_up(.:format)       devise/registrations#new
       edit_user_registration GET    /users/edit(.:format)          devise/registrations#edit
                              PUT    /users(.:format)               devise/registrations#update
                              DELETE /users(.:format)               devise/registrations#destroy
                         user        /users/:id(.:format)           users#show
                        about GET    /about(.:format)               pages#about
                      contact GET    /contact(.:format)             pages#contact
                      profile        /profile(.:format)             profile#show
                         root        /                              pages#home

希望有人能帮我解决我的两个问题

您必须将:id添加到pin_path,如下所示:

pin_路径pin.id


1若要在登录后重定向到特定页面,您应在应用程序控制器中的“”中重写“”中“”的“”后“”中“”的“”路径“”。在这种情况下,请将当前“”用户“”路径替换为要重定向到的页面:

def after_sign_in_path_for(resource)
  current_user_path
end
[来源

2如果只想显示当前登录用户的PIN,则应修改PIN_controller.rb,以便索引操作仅显示用户PIN:

def index
   @pins = current_user.pins
end
然后链接到导航栏中的pins_路径

<li><%= link_to "Home", pins_path %></li>

这也给了我一个错误:未定义的局部变量或pin GET/pins/:id的方法“pin”:format pins如何定义资源,在我看来,你应该在routs.rb中定义资源,类似这样的内容:resource:pin在你定义路由时,你必须用pin id调用pin_path,pint_path1,其中1是pin id关于这里的路由:我已经在Github上发送了一个pull请求和我的评论。请确保@maringan也合并了这个请求,它修复了navbar链接的问题。
<li><%= link_to "Home", pins_path %></li>
before_action :authenticate_user!