0
私はgem 'firebase'
を使用し、firebaseからデータを取得しています。私はcreate,show
データですが、update action
の問題です。ここuser.rb
ファイル#<Hash:0x007efcfb0c19e0>のための未定義のメソッド 'model_name'
require 'firebase'
class User < ActiveRecord::Base
FIREBASE = Firebase::Client.new("url" ,"secret")
def self.all
response = FIREBASE.get('users')
response.body.present? ? response.body : {}
end
def self.find(id)
FIREBASE.get("https://stackoverflow.com/users/#{id}").body
end
def self.update(id, data)
response = FIREBASE.update("https://stackoverflow.com/users/#{id}", data)
return response.success?
end
end
とusers_controller.rbファイルを私のコードです:
class UsersController < ApplicationController
respond_to :html, :json
def edit
@user = User.find("#{params[:id]}")
end
def update
@user = User.find(params[:id])
User.update("#{@user[0]}", user_params)
respond_with @user
end
private
def user_params
params.require(:user).permit(:name)
end
end
とedit.html.erbファイル:
:ここ<%= form_for @user do |f| %>
<%= f.text_field :name %>
<%= f.submit %>
<% end %>
は私のエラーログです
Started GET "https://stackoverflow.com/users/-KOKEM82melqy/edit" for 180.211.159.218 at 2016-08-04 12:19:58 +0000
Cannot render console from 180.211.159.218! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255
Processing by UsersController#edit as HTML
Parameters: {"id"=>"-KOKEM82melqy3"}
Rendered users/edit.html.erb within layouts/application (5.2ms)
Completed 500 Internal Server Error in 40ms (ActiveRecord: 0.0ms)
ActionView::Template::Error (undefined method `model_name' for #<Hash:0x007efcfb7c6ab0>):
1: <h1>Editing user</h1>
2: <%= form_for @user do |f| %>
3: <div class="field">
4: <%= f.label :name %><br>
5: <%= f.text_field :name %>
app/views/users/edit.html.erb:2:in `_app_views_users_edit_html_erb__2046577153275023374_69812507750700'
私は多くの時間しかし、仕事に注意してください。なにか提案を ? これについてさらに詳しい情報が必要な場合は、教えてください。 ありがとうございます。
エラーの行番号はどれですか?おそらく 'user_params'と表示される行ですか? – Ursus
私は問題のuser_paramsを追加しませんでした。すぐに追加します – Mezbah
はい、更新方法 – Ursus