Mongomapper, Rails3 Edge : form_for의 정의되지 않은 메소드`to_key '
-
20-09-2019 - |
문제
Rails, Mongomapper 및 Devise에서 현재 GIT 버전으로 실행되는 Basic Devise 예제를 얻으려고 할 때 다음과 같은 오류가 나타납니다.
undefined method `to_key' for #<Admin:0x23dee04>
내 실제 출처는 다음과 같습니다.
4: = form_for @admin, :url => admins_path do |f|
5: - field_set_tag 'Update my email' do
6: %p= f.text_field :email
7: %p= error_message_on @admin, :email
@admin은 현재 로그인 한 사용자 ( @admin = current_admin) @admin = admin.first를 사용할 때 동일한 오류가 발생합니다.
이것이 Mongomapper 문제인지 확실하지 않습니다. Rails3 관련 일 수도 있습니다 ... 어떤 포인터에 감사드립니다 ...
내가 ERB 동등한 것을 사용하는 경우에도 마찬가지입니다.
<%= form_for @admin, :url => { :action => "create" } do |fr| %>
<%= fr.text_field :sign_in_count %>
<% end %>
전체 오류 출력은 다음과 같습니다. http://pastie.org/871850
해결책
여기에 Mongomapper에 패치를 제출했습니다.
http://github.com/fredwu/mongomapper/commit/6e5e531312ef98c30e33286a1f80dd000468ed07
다른 팁
자, 여기에 해결책이 있습니다.
1 모델에서 수정
def to_key
self.keys.to_a
end
2보기에서 수정하십시오
<%= form_for :admin, @admin, :url => { :action => "create" } do |f| %>
<%= f.text_field :sign_in_count %>
<% end %>
둘 다 작동합니다. 그래도 이것이 레일이나 몽고 메이프 문제인지는 분명하지 않지만 다른 사람에게는 해결 방법이 있습니다.
제휴하지 않습니다 StackOverflow