【问题标题】:After Create redirect to other controller Edit创建重定向到其他控制器后编辑
【发布时间】:2013-09-23 21:01:18
【问题描述】:

当用户在我的应用上创建新帐户时,我想将他重定向到另一个控制器,比如说,偏好控制器。

但是我不知道怎么做,用户被创建了,但是没有被重定向到新页面

这是用户创建的

def create
  @user = User.new(params[:user])

  if params[:user][:newMusician]
    @user.preference = Preference.new
    if @user.save
      sign_in @user
      flash[:success] = "Welcome"
      redirect_to "/preference/edit/"
    else
      render 'new'
    end
  end
end

这是我的路线.rb

resources :users do
  resources :preferences

补充一下,如果关系是has_one,我还应该复数吗?因为每个用户只有一个偏好

另一个疑问,我只需要我的偏好中的编辑操作吗?

谢谢! (Rails 4 红宝石 2)

【问题讨论】:

  • @usuario 在哪里定义?尝试将重定向更改为 redirect_to @user.preference
  • @kobaltz “定义”是什么意思?如果我 redirect_to user.preference 它将使用哪个操作?索引我相信对吗?
  • 你可以试试edit_users_preference_path(@user)
  • 在您的创建操作中,我看不到 @usuario 的定义位置。
  • 翻译在 StackOverflow 上发布问题时只是一个错字,阅读用户而不是 usuario

标签: ruby-on-rails controller ruby-on-rails-4 nested-routes


【解决方案1】:

在您的终端中运行rake routes。你应该得到这样的路线:

路径(助手)|方法 |网址 |控制器#action

edit_user_preference | GET | users/:user_id/preferences/:id/edit | preferences#edit

添加单词路径并将变量user_idid 传递给辅助方法,而不是"/preference/edit/"

edit_user_preference_path(@user.id, @preference.id)

您还需要一个更新操作来更新记录。

【讨论】:

  • 感谢 Cortex,页面现在正在重定向,但我收到了一个未初始化的常量 PreferencesController
  • 在这样的 URL 上:localhost/user/14/preference/14
  • 当然,这里是 repo github.com/Revokee/NewMusicJungle,但是模型是葡萄牙语的......并考虑 Preference = Musician(Musico,葡萄牙语)。编辑:这是我的 Facebook,我不想在这里发布我的电子邮件,但你可以在 facebook.com/eduardo.almeida.754918 上与我聊天
猜你喜欢
  • 1970-01-01
  • 2016-02-06
  • 1970-01-01
  • 1970-01-01
  • 2020-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-09
相关资源
最近更新 更多