質問編集履歴

2

前回間違って修正したため

2016/02/07 04:39

投稿

hoge_huga
hoge_huga

スコア13

test CHANGED
@@ -1 +1 @@
1
- ruby on rails 1対多モデルで使えるメソッドについて
1
+ ruby on rails redirect_to @hogeの挙動について
test CHANGED
@@ -1,47 +1,51 @@
1
- ruby on rails で1対多のモデルがあるのですが、多から1どうれば参照できのか悩んでいます。
1
+ ruby on rails で開発を進めうちに、コントローラ見通しよくするため、管理側とユーザー側フォルダ分けしたと考えています。
2
+
3
+ クラス名やルートの設定は変更したのですが、新規作成
4
+
5
+ 後のリダイレクトで下記のエラーが発生します。
6
+
7
+ NoMethodError in Admin::HogeController#create
8
+
9
+ undefined method `hoge_url' for #<Admin::HogeController:0x007fa53fa80188>
10
+
11
+ 原因はviews/admin/hoge/_form.html.erbの
12
+
13
+ 26 def create
14
+
15
+ 27 @hoge = TempAnime.new(temp_anime_params)
16
+
17
+ 28
18
+
19
+ 29 respond_to do |format|
20
+
21
+ 30 if @hoge.save
22
+
23
+ 31 format.html { redirect_to @hoge, notice: 'Temp anime was successfully created.' }
24
+
25
+ 32 format.json { render :show, status: :created, location: @hoge }
26
+
27
+ 33 else
28
+
29
+ 34 format.html { render :new }
30
+
31
+ 35 format.json { render json: @hoge.errors, status: :unprocessable_entity }
32
+
33
+ 36 end
34
+
35
+ 37 end
36
+
37
+ 38 end
38
+
39
+ この31行目redirect_to @hogeを
40
+
41
+ redirect_to admin_hoge_url(id:@hoge.id)
42
+
43
+ とすれば正常に動くのですが、redirect_to @hodeで何故hoge_urlメソッドを実行しようとするのでしょうか?
2
44
 
3
45
 
4
46
 
5
- userモデル
47
+ できれば
6
48
 
7
- 1 class User < ActiveRecord::Base
49
+ redirect_to @hodeでadmin_hoge_url(id:@hoge.id)、
8
50
 
9
- 2 has_many:comments,:dependent => :destroy
51
+ link_to @hogeでadmin_hode_path(@hoge.id)に遷移するように設定したいです。
10
-
11
- 3 end
12
-
13
-
14
-
15
- commentモデル
16
-
17
- 1 class Comment < ActiveRecord::Base
18
-
19
- 2 belongs_to :users
20
-
21
- 4 end
22
-
23
-
24
-
25
- views/comment/index.html.erb
26
-
27
- 8 <% @comments.each do |comment| %>
28
-
29
- 9 <div class="col-md-6">
30
-
31
- 10 <% unless comment.users.nil? %>
32
-
33
- 11 <div class="col-md-12">ユーザー名:<%= comment.users.name %></div>
34
-
35
- 12 <% end %>
36
-
37
- 13 <div class="col-md-12">コメント<%= comment.name %></div>
38
-
39
- 14 </div>
40
-
41
- 15 <% end %>
42
-
43
-
44
-
45
- こんな風にviewからコメントを投稿したユーザー名を取得したいのですが、comment.usersがnilになって取得できません。
46
-
47
- どうすれば良いのでしょうか?

1

 

2016/02/07 04:38

投稿

hoge_huga
hoge_huga

スコア13

test CHANGED
@@ -1 +1 @@
1
- ruby on rails のredirect_to(@hoge)
1
+ ruby on rails 1対多モデルで使えるメソッドについて
test CHANGED
@@ -1,51 +1,47 @@
1
- ruby on rails で開発を進めうちにコントローラの見通しよくするため、管理側とユーザー側フォルダ分けしたと考えています。
1
+ ruby on rails で1対多のモデルがあのですが多から1どうれば参照できのか悩んでいます。
2
-
3
- クラス名やルートの設定は変更したのですが、新規作成
4
-
5
- 後のリダイレクトで下記のエラーが発生します。
6
-
7
- NoMethodError in Admin::HogeController#create
8
-
9
- undefined method `hoge_url' for #<Admin::HogeController:0x007fa53fa80188>
10
-
11
- 原因はviews/admin/hoge/_form.html.erbの
12
-
13
- 26 def create
14
-
15
- 27 @hoge = TempAnime.new(temp_anime_params)
16
-
17
- 28
18
-
19
- 29 respond_to do |format|
20
-
21
- 30 if @hoge.save
22
-
23
- 31 format.html { redirect_to @hoge, notice: 'Temp anime was successfully created.' }
24
-
25
- 32 format.json { render :show, status: :created, location: @hoge }
26
-
27
- 33 else
28
-
29
- 34 format.html { render :new }
30
-
31
- 35 format.json { render json: @hoge.errors, status: :unprocessable_entity }
32
-
33
- 36 end
34
-
35
- 37 end
36
-
37
- 38 end
38
-
39
- この31行目redirect_to @hogeを
40
-
41
- redirect_to admin_hoge_url(id:@hoge.id)
42
-
43
- とすれば正常に動くのですが、redirect_to @hodeで何故hoge_urlメソッドを実行しようとするのでしょうか?
44
2
 
45
3
 
46
4
 
47
- できれば
5
+ userモデル
48
6
 
49
- redirect_to @hodeでadmin_hoge_url(id:@hoge.id)、
7
+ 1 class User < ActiveRecord::Base
50
8
 
51
- link_to @hogeでadmin_hode_path(@hoge.id)に遷移するように設定したいです。
9
+ 2 has_many:comments,:dependent => :destroy
10
+
11
+ 3 end
12
+
13
+
14
+
15
+ commentモデル
16
+
17
+ 1 class Comment < ActiveRecord::Base
18
+
19
+ 2 belongs_to :users
20
+
21
+ 4 end
22
+
23
+
24
+
25
+ views/comment/index.html.erb
26
+
27
+ 8 <% @comments.each do |comment| %>
28
+
29
+ 9 <div class="col-md-6">
30
+
31
+ 10 <% unless comment.users.nil? %>
32
+
33
+ 11 <div class="col-md-12">ユーザー名:<%= comment.users.name %></div>
34
+
35
+ 12 <% end %>
36
+
37
+ 13 <div class="col-md-12">コメント<%= comment.name %></div>
38
+
39
+ 14 </div>
40
+
41
+ 15 <% end %>
42
+
43
+
44
+
45
+ こんな風にviewからコメントを投稿したユーザー名を取得したいのですが、comment.usersがnilになって取得できません。
46
+
47
+ どうすれば良いのでしょうか?