質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

394閲覧

NoMethodError in SkilsController#createについて

momomodddddddd

総合スコア7

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

0クリップ

投稿2020/11/17 10:15

編集2020/11/17 11:52

前提・実現したいこと

エラーの解決

発生している問題・エラーメッセージ

NoMethodError in SkilsController#create

エラーメッセージ

undefined method `permit' for :skil:Symbol

該当のソースコード

new.html.erb
]

<%= form_for @skil do |f| %> <div class="field"> <div> <%=f.label :title%><br> <%=f.text_field :title, style: 'width:30%;'%><br> <%=f.label :body%><br> <%=f.text_field :body,:size => 140%> </div> <div> <%= f.submit "button_value"%> </div> <div class="form-group row" id="star"> <%= f.label :body,'評価 ', class:'col-md-3 col-form-label' %> <%= f.hidden_field :body, id: :review_star %> </div> <!-- 評価javascript --> <script> $('#star').raty({ size : 36, starOff: '<%= asset_path('star-off.png') %>', starOn : '<%= asset_path('star-on.png') %>', scoreName: 'comment[star]', half: false, }); </script> <% end %> ソースコード

コード controller//

def

1 @skil= Skil.new 2 3 end 4 def create 5 @skil =Skil.new(skils_params) 6 @skil.save 7 redirect_to skil_path(@skil) 8 end 9 10 11 def skils_params 12 params.require (:skil).permit(:title,:body) 13 end 14end 15コード 16``` 17 18### 試したこと 19permitの部分の変更を試みたが変わらず。 20undefined method `permit' for :skil:Symbolの 21symbolについても教えてください。 22 23 24 25### 補足情報(FW/ツールのバージョンなど) 26 27ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ここかなぁ、、、
params.require (:skil).permit(:title,:body)

params.require(:skil).permit(:title,:body)
にしてみて。(の前の空白を削除。

で、解説です
ruby はmethodを呼ぶときに引数を()を省略して良い、という文法があります。
puts("test")でなくputs "test" で良いように。

params.require (:skil).permit(:title,:body) をそれに従った書き方と解釈した。
つまり
params.require( (:skil).permit(:title,:body) ) と解釈した。
つまり
params.require( :skil.permit(:title,:body) ) と解釈した。
ので、Symbol :skil の permitメソッドを実行しようとして、そんなん無いよ、
となったわけです

投稿2020/11/17 12:39

編集2020/11/17 22:45
winterboum

総合スコア23567

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

momomodddddddd

2020/11/17 15:02

ありがとうございます。そこの空白だったんですね????
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問