問題タブ [virtual-attribute]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
915 参照

ruby-on-rails - 仮想属性のRails検証、フォームエラーの設定。レールキャスト #32

私は基本的に、Rails 3.0.7 用に最新化された Railscast #32 のソリューションを実装しようとしています。

http://railscasts.com/episodes/32-time-in-text-field

'foobar' などの文字列が #deadline_string= に入力されたときに、コンソールまたは (意図した) フォーム エントリによって検証エラーを設定したいと考えています。

私が特に懸念しているのはChronic.parse('2011-05-25 08:19:00 UTC')、TypeError をスローする、より厳密な時刻の書式設定です。その場合、このフォーマットを理解できる Time.parse にフォールバックしたいと考えています。

deadline_string="foobar"この代替形式も、最初の呼び出しとしては機能しません。

私が何をしようとしても、2番目の救助に到達することはないようです. また、スキーマで日時として指定されている、deadline 属性にも奇妙な点があります。

最終的な解決策はこのようなものでしたが、おそらくいくつかのリファクタリングに耐えることができます. メソッド呼び出しでの設定が気self.deadlineになりますが、なぜそうすべきなのかわかりません。

リファクタリングは歓迎され、回答としてマークされます。

0 投票する
1 に答える
190 参照

ruby-on-rails-3 - Rails 3 - Process text input to create multiple models

In the app I'm working on, Courses have many Problems, which in turn have many Steps. Right now there is a form for adding Problems to Courses (and then Steps can be added to those problems). What we want is to have a form that just has a field for LaTeX input, and then process the TeX to create multiple problems with their steps.

At the moment, we're doing this all in the Problems controller. We have two methods, texnew which is identical to new except it has a different view that redirects to the other new method: texcreate, which uses helper methods to extract the problems and steps (using a series of regexes), tries to create them, and flashes somewhat informative error messages if something goes wrong.

The thing is, I keep on reading that we're really not supposed to be doing a bunch of stuff in the controller, and we should favor doing things in the model instead. Virtual attributes might be the right idea for taking in a text field and processing it to create a single problem, but I can't figure out how to make it work for multiple problems, or how to generate any sort of error messages if something goes wrong somewhere along the way.

Is there some better/more idiomatic way to do this?

0 投票する
3 に答える
11492 参照

ruby-on-rails - Rails 3::ifステートメントを使用して検証を作成する

こんにちは私は特定のフォームビューでのみ呼び出される検証を設定しようとしています。これを行うには、フォームの仮想属性のhidden_​​fieldを作成し、これを値に設定してから、検証します:if the virtual属性は値と同じです。

これまでのところ:

0 投票する
1 に答える
473 参照

ruby-on-rails - Rails 3: Railscast #167 タグを作成するための仮想属性 - @user.tags

タグを作成したユーザーによってタグを分離できるタグ付けシステムが必要です。Railscast #167 に従い、仮想属性を使用してタグを設定しましたが、その方法では @post.tags を呼び出して投稿のタグを見つけることしかできませんが、@user.tags を呼び出してすべてのタグを見つけることはできません。

@user.posts.tag("music") がタグ music を持つすべての投稿を返すように、これをどのように拡張できますか?

私が間違っていることについての助けや洞察をありがとう。

0 投票する
3 に答える
644 参照

ruby-on-rails - Rails 3で仮想属性を使用するか、ハッシュでデータを渡す場合

私のアプリケーションでは、Widgetモデルがあります。これは、テーブルによる関連付けを通じてhas_manyをFeature持つモデルです。 WidgetFeature

要件に従って、WidgetFeatureオブジェクトを送信するときに、関連付けられている特定の機能について、そのオブジェクトにもfeature_nameを追加する必要があります。
それを行うには2つの方法があります。

  1. オブジェクトを送信するときに、次のようにします。

widget_feature_object[:feature_name]次に、オブジェクトに(キー、値)ペアがあるため 、コントローラーまたはビューでアクセスできるので、別のペアを追加することもできます。

2。モデルfeature_name仮想属性WidgetFeature作成し、そのためのゲッターメソッドとセッターメソッドを作成します。

私の知る限り、モデルに実際に存在するフィールドとは異なる別のビューを作成する場合は、仮想属性を使用する必要があります(たとえば、フルネーム=名+姓)。
同じことがここにも当てはまりますか?

また、Railsはオブジェクトに対してキャッシュを実行しますか?これは、最初のアプローチを使用するときではなく、仮想属性を使用するときに役立つ可能性がありますか?

各アプローチの長所と短所は何ですか?また、私の要件に従ってどれが最も適していますか?どうもありがとう。

0 投票する
2 に答える
200 参照

ruby-on-rails - 仮想属性内のネストされたモデルに書き込むための正しい Ruby on Rails 構文は何ですか?

これらの問題 ( 1 , 2 )を分割して克服しようとして、私はまだ抱えています。仮想属性から、ネストされた多対多モデルに BLT レシピの最初のステップを書きたいと思います。後でもっと複雑な形にしたいので、モデルでこれをやっています。

レシピの名前を除いて、モデル内のすべてをハードコーディングしました。レシピモデルは次のとおりです。

そしてフォームはこちら

「RecipesController#create で NameError、未定義のローカル変数または # のメソッド「attribute」」が表示されます。複数のエラーがあると思いますが、これはうまくいくようです。私は何を間違っていますか?

ありがとう!

編集 - これは RecipeController 作成アクションです

0 投票する
2 に答える
287 参照

ruby-on-rails - Ruby on Rails でテキスト フィールドを解析して複数のモデルに書き込むにはどうすればよいですか?

Rails 3.1.RC4 で作成している単純なプロジェクト + タスク アプリケーションがあります。プロジェクト名、タスクがあり、各タスクは人に割り当てられます。プロジェクト フォームは単純で、(1) タスク名と (2) タスクと担当者の 2 つのボックスのみです。バックエンドでは、タスクと担当者を解析し、それらすべてを適切なモデルに入れたいと考えています。

サンプル入力

プロジェクト名:ピップの誕生日パーティー

タスク、担当者:

  • きれいなバスルーム、ジョン
  • シャインシューズ、サリー
  • ケーキを焼いて、ピーター
  • シャンパンを買う、スーザン

次の 4 つのモデルがあります。

ここに 1 つの形式のパーシャルがあります。

現在、「人」に対して未定義のメソッドエラーが発生しています。

多対多モデル、仮想属性、およびネストされたモデルをカバーする Railscasts をレビューしましたが、飛躍することはできませんでした。Javascript を使用せずにこのタスクを実行する必要があります。

0 投票する
1 に答える
186 参照

ruby-on-rails - Railsでのモデルの関連付けの設定-「孫側から」の保存

私はRubyの初心者なので、これらのいくつかが完全に無知である場合はご容赦ください。次の関連付けを設定したい:

  • 転写は作曲に属します
  • 作曲には多くの文字起こしがあり、アーティストに属しています
  • アーティストは多くの作曲(および作曲によるトランスクリプション)を持っています

作曲やアーティストを作成するためのスタンドアロンのフォームは必要ありません。ユーザーは文字起こしを作成するだけです。文字起こしのフォームには、アーティストとコンポジションのテキストフィールドがあり、データベースエントリは動的に作成する必要があります(まだ存在しない場合)。

モデルをどのように設定すればよいですか?音声文字変換でいくつかの仮想属性を使用する必要がありますか?

find_or_create_by_name後で、以前に見つけた、または作成したアーティストを使用してコンポジションを作成しますか?

助けていただければ幸いです。前もって感謝します

0 投票する
1 に答える
589 参照

ruby-on-rails - Ruby on Rails-仮想属性(タグ)の検索

Ryan Batesがここに示すように、仮想属性のタグ付けシステムを設定しました:http: //railscasts.com/episodes/167-more-on-virtual-attributes

このシステムは、モデルにタグを適用するのに非常にうまく機能し、数日前にシステムに実装したものです。次に、Ryan Batesによる簡単な検索チュートリアル(http://railscasts.com/episodes/37-simple-search-form )に従いました。私の問題は、検索フォームが名前を検索するようになり、たまたまタグを実装したことです。タグを検索することだけが理にかなっています。残念ながら、私はRuby on Railsの経験があまりなく、ある種の作業を行うための唯一の方法は、すべてをループする一連のループを実行することでしたが、それでも配列を検索する方法がわかりませんでした。 'd got(そしてループはすべてを非常に遅くしました)。

誰かが私がこのようなことをする方法を知っていますか?

0 投票する
1 に答える
966 参照

ruby-on-rails - 仮想属性の accept_nested_attributes_

私は2つのモデルを持っています:

請求書項目の列は暗号化されており、セッションから取得した暗号化キーを使用しています。このキーをサーバーや他のモデルに保存したくありません。

コントローラーから:

これにより、キーが属性リストに適切に配置されますが、請求書の作成時に InvoiceItems モデルに渡されません...

これを機能させる方法についての指針は素晴らしいでしょう。