2014-07-17 13 views
0

这个问题是我关于Ruby on Rails更大的问题的一部分,即红宝石在哪里以及如何满足导轨?我们如何在控制器与视图和模型之间进行交互。但要具体。通过rails中的链接传递参数,有可能吗?

我有一个link_to方法,我称之为自定义方法。我如何将参数传递给该方法?

例如

%td= link_to "Reject", toggle_field_admin_entry_path(photo, "foo") 

所以我理解这一步,说明“照片”是动作要在操作的对象,但“说法”可能是一个值,这样才能做这样的事情

def toggle_field(argument) 
    if argument == "foo" 
    do this to photo 
    else 
    do that to photo 
    end  
    end 

我们可以做到这一点只是一个字符串?或者它必须是散列? 我对ruby方法有一个基本的理解,但我正在努力理解它们与rails在视图中的关系。

如果您需要进一步澄清,请不要对此感到sn,,我想在这里学习。如果你觉得我是主题,我会编辑myanswer以获得更多关于主题的内容。

谢谢你的时间。

+0

http://guides.rubyonrails.org/ – xlembouras

+0

@xlembouras,是是我知道,每个人都发布这个。谢谢,虽然,第123456789时间 –

+1

不要错了。这只是你的问题是关于一些非常基本的rails的东西。国际海事组织通过一些指南可以更好,更快地学习,而不是从SO上的问题。 – xlembouras

回答

1

使用params

的意见

link_to "Reject", toggle_field_admin_entry_path(photo, { params: { bar: "foo", 
                    baz: "wtf" } }) 
在行动

def toggle_field 
    if params[:bar] == "foo" 
    do this to photo 
    elsif params[:baz] == "wtf" 
    do that to photo 
    end  
end 
0

购买使用更好的路由就可以实现这一点,例如:

的routes.rb文件

get 'some_controller/toggle_field_action/:arg1/:arg2' => 'some_controller#toggle_field_action'), as:'toggle_field_admin_entry' 

查看文件

%td= link_to "Reject", toggle_field_admin_entry_path(photo, arg1: "test", arg2: "test2") 

您可以接收控制器动作:

params[:arg1] 
params[:arg2]