2012-05-01 13 views
1

私は1ヶ月間しかRailsを学習していないので、ここの答えが本当に単純か複雑かは分かりません。best_in_place&model属性へのアクセス(noob?)

私は2つのモデルを用意しています。「SpecialUser」と「User」と呼びます。

class User < ActiveRecord::Base 
has_one :special_user 
attr_accessible :name, :email, :password, :password_confirmation, :remember_me, :roles, :user_type, :address_1, :address_2, :city, :state, :zip 

そして、私のSpecialUserモデルは次のようなものになります(& C。)::

マイUserモデルは次のようになります(。& C)

class SpecialUser < ActiveRecord::Base 
belongs_to :user 

https://github.com/bernat/best_in_placeを使用して、SpecialUserの情報を編集するためのフォームを作成します。以前は、SpecialUserに対して別の「アドレス」属性を持っていましたが、最近では完全なアドレス(address_1、address_2、city、state、zip ...)を指定してそれをユーザーに入れて、アドレスもあります。しかし:)

、私はこれを行うにしてみてください。

<% # best_in_place_if can?(:edit, @super_user), @super_user.user, :address_1 %> 

私はこのエラーを取得する:

NoMethodError in Project_professionals#show 

undefined method `user_path' for #<#<Class:0x0000013457fb90>:0x00000132e1fdd8> 

私もUser.find(@super_user.user)User.find(@super_user.user_id)@super_user.userを交換しようとしているが、私は正確に取得します同じエラー。

私は

<%= @super_user.user.address_1 %> 

を行うとそれが動作します!

best_in_placeのものを読んだ後、私はまだ私の答えを見つけることができません。それは私たちが使用しているか、私は何かが欠けている宝石の限界だ場合:(わからない

答えて

0

best_in_placeはそれを扱うべきではありません - 。これは、それを修正する場合

を参照してください制限を

:path: URL to which the updating action will be sent. If not defined it defaults to the :object path.

<%= best_in_place_if can?(:edit, @super_user), @super_user.user, :address_1, :path => super_user_user_path %> 
+0

本当にありがとうございました:)私は実際には 'super_user_user_path'の代わりに' super_user_path'を使用しなければなりませんでした。周りにモンキーと通常のパスが正常に動作していることがわかりました。 :) ** EDIT **:DBからのデータが表示され、編集するためにクリックするとコンソールログにこのエラーがスローされます: 'Uncaught SyntaxError:予期しないトークン<'。私はそれを騙し続けるつもりですが、あなたの頭の上から何かを考えてこれをなくすことはできますか? :) – melissanoelle

+0

は、これをあきらめてアドレスデータをsuper_userテーブルに移動し、userテーブルから移動しました。 – melissanoelle

関連する問題