【Ruby】Ruby on Rails Part9at PHP
【Ruby】Ruby on Rails Part9 - 暇つぶし2ch643:nobodyさん
10/06/22 14:18:27 DFcN5Bvo

共同購入型クーポンサービス、RailsのPaaS「Heroku」上に構築 ? @IT
URLリンク(www.atmarkit.co.jp)

開始2年で年商321億円、グルーポン系サービスの日本版まとめ - はてなこわい><
URLリンク(b.hatena.ne.jp)



644:nobodyさん
10/06/22 15:37:42
<%form_for(@model) do |f|%>
<%=f.text_field :name%>

これでnameのテキストフィールドには、valueとしてmodel.nameがセットされると思います。
この元のnameの値(valueに入る値)をsubmit時の引数として渡したいのですが、やり方がわかりません。
わかる方いましたら教えて下さい、お願いします。

645:nobodyさん
10/06/22 16:34:03
何もしなくても、model[:name]で渡されてると思うけど

646:nobodyさん
10/06/23 02:02:24
usersテーブル:id,name,etc
commentsテーブル:id,user_id,text
responseテーブル:id,commment_id,user_id,text

@comments = Comment.find(:conditions =>{:id => id}, :include => 'responses')

@comments.each do |comment|
@response << comment.response if comment.response
end

render :xml => {:comments => @comment, :response => @response}

commentとresponseを返すwebapiを作りたいと思っています。
その際にcomment、responseしているユーザ名の取得も行いたいのですが
どのようにするのが効率よくできるのでしょうか?

それとも、comment,responseテーブルに予めnameカラムを持たせたほうが良いですか?

647:nobodyさん
10/06/23 03:44:45
> それとも、comment,responseテーブルに予めnameカラムを持たせたほうが良いですか?

そだね。このケースではそれが一番手っ取り早そう。
ただ、user.nameが変わっても反映されないけど、それで問題なければ

648:nobodyさん
10/06/23 12:52:14 5nqbPSdk
rails3の正式リリースってなんでこんなに遅れてんの??
rails開発者界隈でなんかもめごととかあるのかな?

649:nobodyさん
10/06/23 15:47:44 scuHCblD
>>647
処理が煩雑になるようならnameの反映は諦めようと思っています。
ちなみに、現在のテーブル構成で実装する場合、
comment、responseのそれぞれにnameをひもづけて以下のようにクライアントに渡したいのですが
取得したcommentオブジェクトにnameプロパティを動的に追加のようなことができますか?
Commentクラスにnameセッターを作り値を設定してやっても思ったように動作しませんでした。

<comment>
<id>1</id>
<text>こんにちは</text>
<user_id>001</user_id>
<name>名前</name>
</comment>

650:nobodyさん
10/06/23 16:26:25
>>648
1.9.2待ちなんじゃないの?

>>649
セッターだけ?
まぁ、ゲッターつけてもダメかもしれんが

651:nobodyさん
10/06/23 16:49:15
>>649
object.to_xml として to_xml の引数に :methods => [:name] とかすれば
object.name メソッドの結果が並列に入ったり、
:include => {:user => {...}} とかやれば
object.user が入れ子で入ったりもできたはず。
詳しくは to_xml 嫁。

652:nobodyさん
10/06/24 10:01:39
update.attributesを使用すると主キーの更新が出来ない為、executeを使用しています。
しかしexecuteを使用する場合、入力チェックが上手く動かずに悩んでいます。
connection.executeを使用した時に入力チェックする方法があれば教えて下さい。

653:nobodyさん
10/06/24 10:22:19
>>652 主キーが :id のことだとして、 update_attributesで:idを変えられないのは デフォルトでattr_protected(ぐぐれ)に入っているから。 無難なのは、:idだけ、obj[:id] = newid で書き換えること。

654:nobodyさん
10/06/24 10:39:59
>>653
@obj[:id] = params[:newobj][:newid]
@obj.update_attributes(params[:newobj])
のような形でやればいいということですか?
今試行してみましたがid部分だけ更新されませんでした


655:nobodyさん
10/06/24 11:05:13
ああ、保存後だと無理だろうなぁ
別オブジェクトとして保存後に元のオブジェクトを消すしかないんじゃないか?


656:nobodyさん
10/06/24 11:43:08
on update cascadeで参照されているので保存して消すとかは出来ないです
別途id(主キー)を作って既存idを主キーからユニークに変更するしかないんでしょうか?

657:nobodyさん
10/06/24 16:04:10
named_scopeの中身に、別のnamed_scope を記述することは出来ないのでしょうか

named_scope :hoge
named_scope :hogehoge , Hoge.hoge

みたいな感じで

658:nobodyさん
10/06/24 16:34:41
所詮はクラスメソッドなので
named_scope :a, ...
named_scope :b, ...
def self.ab; a.b; end
とは出来る。


659:657
10/06/24 16:46:13
>>658
おお、これで十分!
助かりました!

660:nobodyさん
10/06/24 16:58:24 JCV4W5p0
縦に並んだリスト要素をマウスオーバーした瞬間、
その右隣に、ちょっとした説明が出現するものを作ろうとしています。

バナナ
りんご
スイカ

↓ りんごをマウスオーバー時

バナナ
りんご 赤い
スイカ

ざっというと、こんな感じのものを作りたいと思っているのですが、行き詰っています。

<% @fruites.each do |fruite| %>
<%= fruite.name %> <%= fruite.explain %> #問題はここです
<% end %>

という感じで作りたいと思ってます。

クリックを説明文表示のトリガとするなら、link_to_remoteでいいと思うのですが、
マウスオーバーをトリガとして動かす方法がわからず、困っています。

問題の行を、JavascriptのAjaxUpdaterで直に書いてしまうと、今度はrubyのeachから、
どうやって変更箇所のid名(右隣のid名)をもらえばいいかが分からなくなってしまいます。
できればRubyサイドで解決したいと思いますが、JavaScript直書きの解決法でも構いません。

解決のためのよい方法をご存知の方いましたら、教えて頂けると嬉しいです。
よろしくお願い致します。

661:nobodyさん
10/06/24 20:19:05
>660
それCSSで出来るよ。


662:nobodyさん
10/06/24 20:34:37
> 問題の行を、JavascriptのAjaxUpdaterで直に書いてしまうと、今度はrubyのeachから、
> どうやって変更箇所のid名(右隣のid名)をもらえばいいかが分からなくなってしまいます。

いまいち意味不明なんだけど、行じゃなくてフィールドだけ書き換えるとか、
取得したデータの中にもid埋め込んどくとかすればいいんじゃないの?
そもそもマウスオーバーの度にサーバにアクセスにいくのが重そうだけど。

663:nobodyさん
10/06/25 07:44:40
JavaScript、CSS、ツールチップあたりでググるといいかも


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch