studies
というモデルがあります。アクションリダイレクトredirect_to edit_study_path(@new_study)
後(Rails)編集URLから「id」を取得する方法
、
URL:http://localhost:3000/studies/2/edit
。
id
を渡した後にURLをカスタマイズする方法はありますか?例えば
、http://localhost:3000/study
は(まだのparamsで:id
でまだ編集パスに行く、と)
studies
というモデルがあります。アクションリダイレクトredirect_to edit_study_path(@new_study)
後(Rails)編集URLから「id」を取得する方法
、
URL:http://localhost:3000/studies/2/edit
。
id
を渡した後にURLをカスタマイズする方法はありますか?例えば
、http://localhost:3000/study
は(まだのparamsで:id
でまだ編集パスに行く、と)
私はあなたが何をしたいと思います現在の研究を編集するのですか?
この場合、経路にressources
の代わりにressource
を使用することができます。
のは、例を持ってみましょう:(あなたのケースで編集など。)それらの
#in routes.rb
resources :studies
resource :study
の両方がStudiesControllerへのデフォルトのリンクで、同じアクションを呼び出しますが、2つの異なる経路
get "/studies/:id/edit" => "studies#edit"
get "/study/edit" => "studies#edit"
で編集アクションで
を入力すると、パラメータを正しく処理するように設定する必要があります。
def edit
@study = params[:id].nil? ? current_study : Study.find(params[:id])
end
あなたはどこかでcurrent_studyメソッドが必要であることに注意し、それを動作させるためにcurrent_studyをクッキー/セッションに保存します。
例:
# In application_controller.rb
def current_study
@current_study ||= Study.find_by(id: session[:current_study_id]) #using find_by doesn't raise exception if doesn't exists
end
def current_study= x
@current_study = x
session[:current_study_id] = x.id
end
#... And back to study controller
def create
#...
#Eg. setup current_study and go to edit after creation
if study.save
self.current_study = study
redirect_to study_edit_path #easy peesy
end
end
ハッピーコーディング、
Yacine。
私はそうは思わない、任意のパラメータを渡すことなく。 – 7urkm3n
私は否定的な投票についてフィードバックを得ることはできますか?どのようにして質問を改善できますか? – Mirror318