0
0

More than 3 years have passed since last update.

マークアップ共通化:アクション毎にurlパスの変更

Last updated at Posted at 2020-05-30

概要

前回の記事で、マークアップの共通化を掲載しました
コチラ↓↓
https://qiita.com/kazuko___3o3___/items/019174474f4f258ba19b

実は、この記事がメインでございましたっ:triumph:

newアクション、editアクション毎に指定したいURLが異なり、最初はif文でコードを書くもエラー続きでした:cold_sweat:
その解消法を備忘録として残します!

事象

以前、【form_forが自動的に生成してくれるパスは複数形のみ】という記事を書かせていただきました(https://qiita.com/kazuko___3o3___/items/cf8e6966772d629d5927

そのため、HTMLは下記のように記載されています。

_form.html.haml
#省略
.new_display
  = form_for @task, url: group_tasks_path do |f|
#省略

【group_tasks_path】はnewアクションの時のみに有効で、editアクションではエラーになってしまいます:scream:

解決方法

共通ビューに記載されているform_forの箇所を別ファイルに記載します:writing_hand:

before

new.html.haml/edit.html.haml
= render "form"

after

new.html.haml
= form_for @task, url: group_tasks_path do |f| 
  = render partial: "form", locals: {f: f} |= render "new_main"
edit.html.haml
= form_for @task, url: group_task_path do |f| 
  = render partial: "form", locals: {f: f} |= render "new_main"

上記内容に変更することで、newアクション時には新規登録画面、editアクション時には編集画面(入力されている内容も反映)されるようになり、create、updateもバッチリでした:laughing:

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0