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、ツールチップあたりでググるといいかも