http://www.swetake.com/qr/ruby/qr_rb.html
回避策の見当もつかなかったので次善策としてQRコードはAppletで表示することに。
http://www.swetake.com/qr/java/qr_java.html
class HogeController < ApplicationController
around_filter ::MobileView::TransFilter.new
require "mobile_view"
続きを読む
* UserAgenteでViewを切り替えるコントローラ
* PC専用(UserAgentは考慮しない)コントローラ
* 携帯専用のコントローラ。UserAgentは考慮しないがセッションIDはURLに含める必要がある。
と3種類のコントローラの制御が必要かつ、これらのコントローラ間のやり取りも整合性をとる必要がある。
先のURLからソースを取ってきていろいろトライしてるんですが、今のところうまくいかず。道のりは長いか。。。
def itemPaginate(params)
# step 1: read and set the variables you'll need
page = (params[:page] ||= 1).to_i
items_per_page = 35
offset = (page - 1) * items_per_page
# step 2: do your custom find without doing any kind of limits or offsets
# i.e. get everything on every page, don't worry about pagination yet
tag = params[:t]
yyyy = params[:y]
mm = params[:m]
label_color = params[:lc]
order = "items.created_on desc"
conditions = "items.user_id = ?", session[:user_id]
if tag == nil && yyyy == nil && mm == nil && label_color == nil
@item_pages, @items = paginate :items,:per_page => 35,:order => order,:conditions => conditions
else
if tag != nil
@items = Item.find_tagged_with(tag,:order => order,:conditions => conditions )
elsif yyyy != nil && mm != nil
@items = @user.items.find(:all,:conditions => ["entry_year = ? and entry_month = ?",yyyy,mm],:order => order)
elsif label_color != nil
@items = @user.items.find(:all,:conditions => ["label_color = ?",label_color],:order => order)
end
# step 3: create a Paginator, the second variable has to be the number of ALL items on all pages
@item_pages = Paginator.new(self, @items.length, items_per_page, page)
# step 4: only send a subset of @items to the view
# this is where the magic happens... and you don't have to do another find
@items = @items[offset..(offset + items_per_page - 1)]
end
return @item_pages,@items
end
around_filter TestScopedAccessFilter.new(Item, :mine)
private
def carbon_copy(item)
recipient = session[:email]
AccountMailer.deliver_carbon_copy(recipient,item)
end
protected
def mine
{
:find => {:conditions => ["user_id = ?", session[:user_id]]},
:create => {:user_id => session[:user_id]}
}
end
Item.with_scope(:find =>{:conditions => ["user_id = ?",session[:user_id]]}) do
@item_pages, @items = paginate :items,:order_by => "created_on desc" ,:per_page => 35
tag = params[:t]
if tag then
@tag = tag
@items = Item.find_tagged_with(tag)
end
end
@user = User.find(session[:user_id])
@item = @user.items.find(:id)
witch_scopeですが、RAILS_ENVをproductionにしたら無効になっているような感じ。
バグっぽいのでrails を1.1.2 から1.1.4にアップしたら直ったみたい。
UserモデルにItemモデルを紐つけることによってユーザがログインした後にアイテムのスコープをユーザが所有しているアイテムに限定されるようにしてみます。
かならずUserモデルを介してItemを取り出すことによって他のユーザのデータがみれてしまうというバグを防ぐことができます。
続きを読むrakeに昨日つくったcleanup のタスクを登録してみる。
lib/tasksに適当にrakeファイルを作成します。
task :cleanup do
sh "script/runner 'User.cleanup'"
end
% rake cleanup
<html>
<head>
</head>
<body>
<div id="userContainer">
<div id="main">
<div id="header">
<h1>Title</h1>
</div>
<div id="core">
<%= @content_for_layout %>
</div>
<div id="footer">
Powerd by Nausta.
</div>
</div>
</div>
</body>
</html>
def logout
reset_session
flash[:notice] = "logged out !"
redirect_to(:action => "login_form")
end
最初にテストを書くってのがXPっぽいらしいのでテストを作成してから実装することにします。
# IPアドレスが変わったときのsession riding のテスト
def test_change_remote_addr
@request.remote_addr="192.168.0.40"
test_login_with_valid_user
get :welcome
@request.remote_addr="192.168.0.111"
get :welcome
assert_redirected_to :action =>
'logout'
assert_equal flash[:notice],"logout to
change your ip address"
end
リモートIPアドレスを明示的に変更してアクセス制御フィルタの動作をテストするメソッドです。
続きを読む
Rails::Initializer.run do |config|
ActionMailer::Base.delivery_method = :smtp
ActionMailer::Base.server_settings = {
:address => 'SMTPホスト名',
:port => 25,
:domain => '使用しているドメイン名'
}
ActionMailer::Base.default_charset = 'iso-2022-jp'
require 'nkf'
class Iso2022jpMailer < ActionMailer::Base
def base64(text)
if default_charset == 'iso-2022-jp'
text = NKF.nkf('-j -m0',text)
end
text = [text].pack('m').delete("\r\n")
"=?#{default_charset}?B?#{text}?="
end
def create!(*)
super
@mail.body = NKF::nkf('-j',@mail.body)
end
end
% groupadd subversion
% usermod -G subversion ユーザ
% mkdir /hoge/svn-repos
% chgrp -R subversion /hoge/svn-repos
% chmod -R 770 /hoge/svn-repos
% svnadmin create /hoge/svn-repos
% chmod g+s /hoge/svn-repos/db
% svn import . -m "コメント" svn+ssh://ユーザ@ホスト名/hoge/svn-repos/test/trunk
svn: No repository found in ....
一般的には、login generatorが使われているようですが、salted hash login generator というのがありました。
This generator adds ActionMailer support for changed and forgotten passwords, as well as account verification via a registration email with a custom URL sent to the user’s registered address.
ということで、やりたいことのほとんどが出来てしまうのでこれを使うのもありなんですが、勉強もかねてコツコツと作ってみようかなと
続きを読む日 | 月 | 火 | 水 | 木 | 金 | 土 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
この広告は90日以上新しい記事の投稿がないブログに表示されております。